7.4 常见的异常
2025年09月21日
7.4 常见的异常
Java语言定义了多种异常类,主要的异常类见图1.7.4。异常的顶层类为Throwable,在lang包中定义。
Throwable主要的方法如下。
public StringtoString():返回异常对象的简短描述。
public void printStack Trace():输出异常对象产生的追踪路径,即程序先后调用了哪些方法,使得运行过程中产生了该异常对象。
异常对象经常调用这两个方法用于得到异常信息和产生路径。
Throwable有两个子类:Error、Exception。主要异常的结构图如图1.7.4所示。
图1.7.4 主要异常类的结构图
(1)Error异常由Java虚拟机生成并抛出,此类异常是程序发生了不可控的错误,包括动态链接失败错误、虚拟机错误、内存溢出错误、栈溢出错误等。程序无法对其做处理,由操作系统处理。
(2)Exception异常分为两类:RuntimeException异常(所有RuntimeException类及其子类的实例)、Checked Exception异常(不属于RuntimeException的异常)。
①RuntimeException异常有除数是0和数组下标越界等,它由系统自动检测并将它们交给缺省的异常处理程序。在程序中,这类异常无论处理还是不处理,程序都可以编译通过。但是对于这类异常,Java希望程序员在编写程序时就避免这类异常的出现。
②CheckedException异常程序必须显式处理。如果程序没有处理CheckedException异常,该程序在编译时会发生错误而无法运行。这体现了Java的设计哲学:没有完善错误处理的代码根本没有机会被执行。