异常类
Throwable 类是 Java 语言中所有错误或异常的超类,Exception类和Error类就是它的子类;
-
在Exception分支中有一个重要的子类RuntimeException (运行时异常)包括:
- ArrayIndexOutOfBoundsException (数组下标越界)
- NullPointerException (空指针异常)
- ArithmeticException (算术异常)
- MissingResourceException (丢失资源)
- ClassNotFoundException (找不到类)等异常;
这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。
-
Error和Exception的区别:
Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM) 一般会选择终止线程;
Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。
异常处理机制
- 抛出异常
- 捕获异常
- 异常处理
- 五个关键字:try、catch、finally、throw、throws
- 方法快捷键:ctrl+alt+t;
- try:用来监控代码区域;
- catch:用来捕获异常,可以用来写多个catch来捕获异常,捕获的异常类型是逐级递升的;catch里还要进行异常的处理补救;
- finally:用来处理善后工作,比如:IO流程序,用完资源,最后处理异常时需要关闭就在finally中操作;
- throw:用来主动抛出异常,一般在方法中使用;
- throws:假设方法中处理不了异常,把方法中的异常抛出给调用者,让其在try-catch中处理,也可以使用throws 关键字继续抛异常,这样程序也能编译运行;
- 自定义异常:可以自己定义异常,通过继承Exception或者它的子类来定义自己的异常,通常用在知道自己的异常是什么情况下,用它主动抛出,让调用者知道你的程序里有什么问题。