捕获异常
如果没有捕获异常,异常将会抛给虚拟机,程序终止。
程序的两种退出方式
1 - 正常退出
2 - 异常退出
try-catch结构
1 - try-catch
2 - try-finally
3 - try-catch-finally
注意点
- 异常被处理了,就不再往外抛出
- try之后才能catch住,如果异常不在try里面,就catch不住
- 如果catch声明的异常和实际上抛出的异常不一致,并且声明的异常不是实际异常的父类
那么就catch不住- 如果用exception类来catch异常,那么所有的异常都能接住
- 如果一个方法通过throws声明了一个异常,那么调用方法的地方就必须做处理
- 可以有多个catch,但是catch的循序必须从子类到父类,异常的父类不能放在子类之前
- finally中慎用return ,因为会将之前的return覆盖
处理异常的方式有两种
- throw 继续往上抛,由最上层的调用方来处理。
- try-catch。由自身来处理。
处理异常的原则:除非是确定自身处理的,否则一律抛到最上层去处理
异常的分类
- 运行时异常(非受检异常) 编译器不检查的异常 RuntimeException
- 受检异常.必须进行处理,否则编译器不通过