异常1(Exception)

 

父类 Throwable(可抛出的)

有两个子类:Error(错误)       Exception(异常)

Error是所有错误类的父类,Exception是所有异常类的父类。

如图所示:

 

 

格式:

Try{

     需要被检测的代码块;

}catch(异常类  变量名){

     异常处理代码;

}finally{

    一定要执行的语句块;

}

 

Try.....catch.....finally运行顺序

1、try块中没有异常的时候,try块运行完之后跳过catch块,最后运行finally

2、try块中发现异常的时候,try块运行到异常的语句,直接跳到catch块中,最后最后运行finally

3、如果一个try块和多个catch块联用,在异常发生时,只会执行第一个和异常对象匹配的catch块,其余的catch块全部忽略。

4、在try块和catch块中,有return语句,finally语句块也会在方法返回之前被执行。

5、虚拟机关闭时,System.exit(0)finally块不会执行。

 

特殊情况:try对应多个catch时,如果有父类的语句块,一定要放在最下面

 

 

 

异常分为:

 

1、编译期异常(检查异常):开发者必须处理,否则无法通过编译(强制用try...catch

2、运行期异常(非检查异常):开发者可以处理,也可以不处理,即使不处理也可以通过编译。(不强制,发现错误改正,不用try...catch

 

常见的异常(所有的运行期异常都是RuntimeException的子类):

1ArithmeticException 算术异常,在执行数学运算时,进行了非法操作时抛出(除零)

2ArrayIndexOutofBoundsException 数组下标越界异常,在访问数组元素时,使用了非法的下标(负数,大于或等于数组长度)抛出。

3ClassCastException 类型转换异常,当大类型强转为小类型时,小类型的变量无法引用大类型变量所指向对象时抛出。

4NullPointerException 空指针异常,当对null值调用属性或方法时抛出。

5NumberFormatException 数字转换异常,将字符串转化为数字类型时,字符串不是合法的数字格式时抛出。

6Java.Util.regex.patter nSyntaException 正则表达式格式异常。当运用正则表达式验证时,正则表达式书写错误时抛出。

7Java.Io.FileNotFoundException 操作文件流时,目标文件不存在时抛出

8Java.io.NotSerializableException  在通过对象流传输对象时,对象没有实现序列化接口时抛出。

9Throw new Exception();创建异常对象,并抛出。

10Java.lang,ClassNotFoundException 加载类时,指定路径的类不存在时抛出。

 

原文地址:https://www.cnblogs.com/suger-4/p/11972214.html