异常
一,异常(Exception)是程序在执行过程中所产生的问题(包括:用户输入了无效的数据,找不到一个需要打开的文件,在通讯过程中网络链接断开或JVM发生内容溢出)。
二,异常的三种类别:
1,检查异常(通常是用户错误或者不能被程序员所预见的问题,不能忽略)
2,运行时异常(是一个程序在运行过程中可能发生的,可以被程序员避免的异常类型,可忽略)
3,错误(实际上,错误不是异常),是用户或程序员所无法控制的问题。
注:检查异常又称受检异常,checked异常;运行时异常又称unchecked异常
三,Thowable类(java.lang.Throwable是检查异常,运行时异常,错误的公共父类)
Throwable类的两个子类:Exception,Error
四,在java语言中,通常在一个方法中使用try和catch关键字捕获异常
语法:try{
被保护的代码快
}catch(异常名称 变量名){
捕获块
}
注:在单个try语句块后可有任意多个catch块,但catch块须依照它们排列的顺序被依次检查。
一个try块可包含一个finaly块,不管异常是否发生,finaly块都会执行。
五,关键字throws用于声明一个方法中要抛出的异常,throw关键字用于抛出一个异常,throws出现在方法签名的末尾(一个方法可以抛出多个异常), 多个异常之间用逗号进行分割。
六,关键字finaly用于在try块后创建一个代码块,出现在catch块的末尾。
七,重写父类方法的子类方法不能声明抛出比父类更多的异常(如果抛出更多的异常则检查异常就永远不能被捕获到)
八,编写自定义异常类时须谨记:
1,所有的异常必须是Throwable的子类
2,如果我们想编写一个可以自动被异常处理或声明规则强制的检查异常,就需要继承Exception类
3,如果想编写一个运行时异常,就需要继承RuntimeException类
注:异常的处理的三种方法:
1,捕获这个异常,不让它沿着调用栈继续向下抛出
2,捕获这个异常,并继续向下抛出
3,不捕获这个异常
十,捕获异常时,先捕获特殊异常,后捕获一般异常;检查异常须处理后才能通过编译,运行时异常不需要进行处理也能通过编译。
浙公网安备 33010602011771号