java中的异常总结

 

在Java中,所有异常都来自一个祖先Java.lang包中的Throwable类。

Throwable有两个重要子类:Error(错误)、Exception(异常)

Error:表示程序中比较严重的问题,大多数与代码的编写者执行的操作无关,而表示虚拟机有问题,比如Virtual MachineError。发生在虚拟机自身或者发生在虚拟机试图执行的应用时。这些错误是不可查的,在应用程序控制和处理之外。

Exception:有个重要子类RuntimeException(运行时异常),由虚拟机抛出异常,比如NullPointerException(要访问的变量没有引用任何对象),ArithmeticException(算术运算符,整除0),ArrayIndexOutOfBoundsException(下标越界)

区别:异常能被程序本身处理,错误无法处理

 

Throwable类常用的方法:

  • public String getMessage()  返回异常发生时的详细信息
  • public String toString()  返回异常发生时的简要信息
  • public String getLocalizedMessage  返回异常对象的本地化信息,使用Throwable的子类覆盖,否则和返回的信息和getMessage一样
  • public void printStackTrace() 在控制台打印Throwable对象封装的异常信息

异常处理总结:

  • try块,用于捕获异常,后可跟多个cache,如果没有cache必须跟一个finally
  • catch,用于处理try捕获的异常
  • finally,无论异常是否捕捉,finally块里的语句都必须被执行。当在try块或cache块中遇到return时,finally语句执行在return语句之前。

以下4中模块,finally不会被执行:

  • finally块语句发生错误
  • 程序所在线程死亡
  • 关闭CPU
  • 前面的代码执行了System.exit()
posted @ 2020-04-12 16:43  Coding-Liu  阅读(167)  评论(0)    收藏  举报