异常:
在Java语言中,将程序执行中发生的不正常情况称为“异常”。需要注意的是开发过程中的语法错误和逻辑错误不是异常
异常的分类和继承关系图:
由图可知Throwable 类是所有异常和错误的超类,下面有 Error 和 Exception 两个子类分别表示错误和异常,其中异常类 Exception 又分为运行时异常和非运行时异常,这两种异常有很大的区别,也称为不检查异常和检查异常
Exception 类用于用户程序可能出现的异常情况,它也是用来创建自定义异常类型类的类。
Error 定义了在通常环境下不希望被程序捕获的异常。一般指的是 JVM 错误,如堆栈溢出
五种常见的异常 :
java.lang.ArithmeticException(算术异常)
java.lang.ClassCastException(类型转换异常)
java.lang.IllegalArgumentException(不合法的参数异常)
java.lang.IndexOutOfBoundsException(数组下标越界异常)
java.lang.NullPointerException(空指针异常)
异常关键字:
常使用:try-catch/ try-finally
try-多catch/try-catch-finally
这里的注意点是:
catch只捕获对应类型的异常
catch里可以写Exception 使用多态来捕捉任意异常
catch可以写多个,但是 前面的catch里的异常类型一定不能是
后面catch的异常类型的父类
throw和throws的区别:
throw 关键字用在方法内部,只能用于抛出一种异常,用来抛出方法或代码块中的异常,受查异常和非受查异常都可以被抛出
throws 关键字用在方法声明上,可以抛出多个异常,用来标识该方法可能抛出的异常列表。一个方法用 throws 标识了可能抛出的异常列表,调用该方法的方法中必须包含可处理异常的代码,否则也要在方法签名中用 throws 关键字声明相应的异常
\