1.(万恶之源)Throwable类:Error子类和Exception子类
2.Error子类:虚拟机错误、线程死锁
3.Exception子类:操作异常;运行时异常(RuntimeException):空指针异常、数组下标越界异常、类型转换异常、算术异常,由java虚拟机自动抛出以及自动捕获;
检查异常:文件异常、输入输出异常,需要程序员手动捕获并添加相应的处理语句
- 处理异常:try-catch和try-catch-finally
try-catch:当处于try中的代码发生异常情况时,其将终止当前程序执行,转而根据抛出的异常去执行相应的catch块中的代码
多重catch块:当抛出多个异常时,避免产生处理异常的混乱,我们引进多重catch块的处理逻辑
注意:编写catch块需要注意顺序问题,应该先子类后父类
finally语句块:进行一些所必须的善后操作,例如,当我们打开了一个文件资源时,在程序执行中途异常终止,我们必须在后续代码中去关闭这个文件资源,此时如何保证这段代码一定完成执行呢?这就需要用到finally代码块了