一、Throwable
在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类。 Throwable: 有两个重要的子类:Exception(异常) 和 Error(错 误) ,二者都是 Java 异常处理的重要子类,各自都包含大量子类。
(1)Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。例如:OutOfMemoryError
(2)Exception(异常):是程序本身可以处理的异常。Exception 类有一个重要的子类RuntimeException。
RuntimeException异常由Java虚拟机抛出。
1)NullPointerException(要访问的变量没有引用任何对象时,抛出该异常)
2)ArithmeticException(算术运算异常,一个整数除以 0 时,抛出该异常)
3)ArrayIndexOutOfBoundsException (下标越界异常)。
...
二、Throwable 类常用方法
(1)public string getMessage(): 返回异常发生时的详细信息
(2)public string toString(): 返回异常发生时的简要描述
(3)public string getLocalizedMessage(): 返回异常对象的本地化信息。使用Throwable的子类覆盖这个方法,可以声称本地化信息。如果子类没有覆盖该方法,则该方法返回的信息与 getMessage()返回的结果相同
(4)public void printStackTrace(): 在控制台上打印 Throwable 对象封装的 异常信息
三、异常处理总结
(1)try 块: 用于捕获异常。其后可接零个或多个 catch 块,如果没有 catch 块,则必须跟一个 finally 块。
(2)catch 块: 用于处理 try 捕获到的异常。
(3)finally 块: 无论是否捕获或处理异常,finally 块里的语句都会被执行。 当在 try 块或 catch 块中遇到return语句时,finally语句块将在方法返回之前被执行。
在以下 4 种特殊情况下,finally 块不会被执行:
(1)在finally语句块中发生了异常。
(2)在前面的代码中用了System.exit()退出程序。
(3)程序所在的线程死亡。
(4)关闭CPU。