Exception是程序可处理的异常,如文件未找到或网络失败,可通过try-catch捕获并恢复;Error是JVM无法处理的严重问题,如内存溢出或栈溢出,程序通常无法恢复,不应捕获。
在Java中,Exception和Error都属于Throwable类的子类,是程序运行过程中可能发生的异常情况。但它们代表的含义和使用
场景有明显区别。
Exception表示程序中可能出现的错误,通常是由程序逻辑或外部因素引起的,比如文件未找到、网络连接失败、数组越界等。这类问题是可以在代码中通过try-catch进行捕获和处理的。
常见特点:
例如:
try {
FileInputStream file = new FileInputStream("nonexistent.txt");
} catch (FileNotFoundException e) {
System.out.println("文件没找到:" + e.getMessage());
}
Error代表系统级别的严重问题,通常是JVM自身出现问题或资源耗尽,比如栈溢出(StackOverflowError)、内存溢出(OutOfMemoryError)。这类问题程序一般无法恢复,也不建议捕获。
常见特点:
例如:
public void recursiveMethod() {
recursiveMethod(); // 可能导致 StackOverflowError
}
开发中应根据类型决定是否处理: