Java异常体系

Java异常体系

Alt text

什么是异常

异常是阻止程序正确执行的错误事件,只要在Java语句执行中产生了异常,一个异常对象就会被创建,JRE就会寻找处理程序来处理异常,如果有
正确的处理程序,异常就会被处理程序接管,否则将引发运行环境异常,JRE停止运行。

异常处理中的关键字

throw 关键字,用来抛出和处理运行时异常
throws 在方法签名中使用throws来告知应用程序此方法可能会抛出的异常
try-catch 代码块 try块中通常是写需要执行的代码,在catch中需要接收一个代表异常类型的参数
finally 有时异常终止了我们的程序,但是还有一些打开的资源尚未关闭,所以我们用finally进行关闭,
无论有没有异常发生,finally中的代码总会执行, finally中的return也会覆盖之前的return。

异常层级

Throwable有两个子类分别是Exception和Error 其中Exception分为受检查的异常和不受检查的异常
Error通常表示编译时和系统异常,通常不能预期,比如JVM崩溃 内存不足

  • 受检查的异常 在程序中能够预期,并且要尝试修复,比如FileNotFoundException,我们必须捕获此类异常,
    并提供有用信息和日志。Exception是所有受检查异常的父类。
  • 运行时异常(Runtime Exception)又称作不受检查的异常 源于不好的编程,比如在操作数组时要确定数组的
    长度,否则可能会出现ArrayIndexOutOfBoundException运行时异常 RuntimeException是所有运行时异常的父类

异常的方法

  • String getMessage():方法返回Throwable的String型信息
  • void printStackTrace():该方法打印栈轨迹信息到标准错误流。