Java 中异常类遵循继承层次:Throwable(父类) - Exception(可检查异常) - RuntimeException(不可检查异常) - Error(系统错误)。实战中,可检查异常需要显式处理,而不可检查异常可在运行时处理。
如何理解 Java 中的异常继承层次
Java 中的异常遵循一个严格的继承层次结构,有助于根据严重性和类型对不同的错误情况进行分类。理解这个层次对于有效地处理异常至关重要。
继承层次结构
异常类 | 父类 |
---|---|
Throwable | 无 |
Exception | Throwable |
RuntimeException | Exception |
Error | Throwable |
类别
Throwable
:表示任何可能发生的异常或错误。Exception
:表示可检查的异常,即应用程序在编译时必须显式处理它们。RuntimeException
:表示不可检查的异常,即应用程序可以在运行时处理它们(无需显式处理)。Error
:表示系统错误,这些错误通常表明应用程序处于不可恢复的状态。实战案例
以下代码演示了如何使用异常继承层次结构:
import java.io.FileNotFoundException; public class ExceptionDemo { public static void main(String[] args) { try { openFile("non-existent-file.txt"); } catch (FileNotFoundException e) { System.out.println("File not found!"); } catch (Exception e) { System.out.println("An unexpected error occurred!"); } } public static void openFile(String fileName) throws FileNotFoundException { if (!new java.io.File(fileName).exists()) { throw new FileNotFoundException(); } } }
在这个例子中,FileNotFoundException
是一个可检查的异常,而我们显式地处理它。父类 Exception
是一个通用异常处理程序,用于处理任何其他异常。