返回

从异常体系到分类,Java异常的本质与精髓

后端

Java异常体系

异常体系是Java编程语言中用来处理异常情况的系统。它对异常情况进行了分类和定义,并提供了一套处理异常的机制。异常体系包括异常类的体系结构、异常的分类、异常的获取和处理等内容。

异常类的体系结构

异常类是Java中用来表示异常情况的类。异常类继承自java.lang.Throwable类,Throwable类是异常体系的根类。Throwable类有两个直接子类:Error类和Exception类。Error类表示严重错误,通常是由虚拟机或系统引起的,无法通过程序处理。Exception类表示一般的异常情况,可以由程序捕获和处理。

异常的分类

异常分为两大类:编译时异常和运行时异常。

  • 编译时异常 :编译时异常是在编译阶段检测到的错误。编译时异常通常是由程序员的错误引起的,例如语法错误、类型不匹配错误等。编译时异常必须显式地处理,否则编译器将报错。
  • 运行时异常 :运行时异常是在程序运行时检测到的错误。运行时异常通常是由程序运行时的情况引起的,例如数组下标越界、空指针引用等。运行时异常不必显式地处理,但如果程序不处理运行时异常,可能会导致程序崩溃。

异常的获取和处理

异常可以通过try-catch语句来获取和处理。try语句块中包含可能引发异常的代码,catch语句块中包含处理异常的代码。当try语句块中出现异常时,程序会跳过剩余的try语句块代码,并执行catch语句块中的代码。

Java中对异常的处理方式

Java中对异常的处理方式主要有两种:异常声明和异常捕获。

异常声明

异常声明是通过throws来声明可能抛出的异常。异常声明放在方法的头部,在方法名的后面,参数列表的后面。异常声明可以声明一个或多个异常类。如果方法可能抛出多个异常类,则可以使用|符号来分隔这些异常类。

例如,以下代码声明了MyMethod方法可能抛出IOExceptionSQLException两个异常类:

public void MyMethod() throws IOException, SQLException {
    // 方法体
}

异常捕获

异常捕获是通过try-catch语句来捕获异常。try语句块中包含可能引发异常的代码,catch语句块中包含处理异常的代码。当try语句块中出现异常时,程序会跳过剩余的try语句块代码,并执行catch语句块中的代码。

例如,以下代码捕获了MyMethod方法可能抛出的IOExceptionSQLException两个异常类:

try {
    MyMethod();
} catch (IOException e) {
    // 处理IOException异常
} catch (SQLException e) {
    // 处理SQLException异常
}

结束语

异常体系是Java编程语言中用来处理异常情况的系统。异常体系包括异常类的体系结构、异常的分类、异常的获取和处理等内容。Java中对异常的处理方式主要有两种:异常声明和异常捕获。异常声明是通过throws关键字来声明可能抛出的异常,异常捕获是通过try-catch语句来捕获异常。