java 如何认识异常
异常的概念
在Java中,异常是程序运行时发生的非预期事件,可能由代码错误、资源不足或外部输入问题引发。异常会中断正常流程,需通过特定机制处理。
异常的分类
受检异常(Checked Exception)
继承自Exception,编译时强制检查,如IOException。必须通过try-catch或throws显式处理。
非受检异常(Unchecked Exception)
继承自RuntimeException,编译时不强制处理,如NullPointerException。通常由逻辑错误导致。
错误(Error)
继承自Error,表示严重系统问题(如OutOfMemoryError),程序通常无法恢复。
异常处理机制
try-catch-finally
try {
// 可能抛出异常的代码
} catch (IOException e) {
// 处理特定异常
e.printStackTrace();
} finally {
// 无论是否异常都会执行(常用于资源释放)
}
throws声明
在方法签名中声明可能抛出的异常,由调用者处理:
public void readFile() throws IOException {
// 方法代码
}
自定义异常
通过继承Exception或RuntimeException创建:

public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
最佳实践
- 优先捕获具体异常而非通用的
Exception。 - 在
finally中释放资源(如文件流、数据库连接)。 - 避免空
catch块,至少记录异常信息。 - 非受检异常通常用于编程错误,需通过代码逻辑预防。
常见异常示例
NullPointerException:空对象调用方法。ArrayIndexOutOfBoundsException:数组越界。ClassCastException:类型强制转换错误。






