文章目录
1、异常
1.1 Throwable类
在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类,Throwable 是所有 Java 程序中错误处理的父类 ,有两个子类: Error 和 Exception 。
- (1)Exception:能被程序本身处理(try-catch)
- (2)Error:无法处理,只能尽量避免。例如,Java 虚拟机运行错误(Virtual MachineError)、虚拟机内存不够错误(OutOfMemoryError)、类定义错误(NoClassDefFoundError)等 。这些异常发生时,Java 虚拟机(JVM)一般会选择线程终止。
Throwable 类常用方法
- public string getMessage():返回异常发生时的简要描述
- public string toString():返回异常发生时的详细信息
- public string getLocalizedMessage():返回异常对象的本地化信息。使用 Throwable 的子类覆盖这个方法,可以生成本地化信息。如果子类没有覆盖该方法,则该方法返回的信息与 getMessage()返回的结果相同
- public void printStackTrace():在控制台上打印 Throwable 对象封装的异常信息
1.2 被捕获的异常分类
Exception是程序本身可以处理的异常,可以通过 catch 来进行捕获。Exception 又可以分为 受检查异常(必须处理)
和 不受检查异常(可以不处理)
。
- (1)Checked异常(非运行时异常): Exception中除RuntimeException极其子类之外的异常。编译器会检查此类异常,如果程序中出现此类异常,比如说IOException,必须对该异常进行处理,要么使用try-catch捕获,要么使用throws语句抛出,否则编译不通过。
必须被捕获或再次声明抛出
- (2)RuntimeException异常(运行时异常):表示的是JVM在运行期间可能出现的
一类异常
,包括RuntimeException类极其子类。Java 代码在编译过程中,编译器不会检查此类异常,运行时异常可以不进行处理(捕获或向上抛出,当然也可以处理),而由JVM自行处理。此类异常在程序中可以选择捕获处理,也可以不处理
。
常见运行时异常
常见非运行时异常