异常

84 阅读2分钟

异常:

在Java语言中,将程序执行中发生的不正常情况称为“异常”。需要注意的是开发过程中的语法错误和逻辑错误不是异常

异常的分类和继承关系图:

image.png

 

 

由图可知Throwable 类是所有异常和错误的超类,下面有 Error 和 Exception 两个子类分别表示错误和异常,其中异常类 Exception 又分为运行时异常和非运行时异常,这两种异常有很大的区别,也称为不检查异常和检查异常

Exception 类用于用户程序可能出现的异常情况,它也是用来创建自定义异常类型类的类。

Error 定义了在通常环境下不希望被程序捕获的异常。一般指的是 JVM 错误,如堆栈溢出

五种常见的异常

 java.lang.ArithmeticException(算术异常)

 java.lang.ClassCastException(类型转换异常)

java.lang.IllegalArgumentException(不合法的参数异常)

 java.lang.IndexOutOfBoundsException(数组下标越界异常)

 java.lang.NullPointerException(空指针异常)

异常关键字:

image.png

 常使用:try-catch/ try-finally

        try-多catch/try-catch-finally

这里的注意点是:

catch只捕获对应类型的异常

  catch里可以写Exception  使用多态来捕捉任意异常

  catch可以写多个,但是 前面的catch里的异常类型一定不能是

后面catch的异常类型的父类

throw和throws的区别:

throw 关键字用在方法内部,只能用于抛出一种异常,用来抛出方法或代码块中的异常,受查异常和非受查异常都可以被抛出

throws 关键字用在方法声明上,可以抛出多个异常,用来标识该方法可能抛出的异常列表。一个方法用 throws 标识了可能抛出的异常列表,调用该方法的方法中必须包含可处理异常的代码,否则也要在方法签名中用 throws 关键字声明相应的异常

\