java如何抛出异常
抛出异常的方法
在Java中,抛出异常主要通过throw关键字实现,用于在代码中显式触发异常。以下是具体的使用方式:
基本语法
throw new ExceptionType("Error message");
示例代码

public void checkAge(int age) {
if (age < 18) {
throw new IllegalArgumentException("Age must be at least 18");
}
}
自定义异常类
可以通过继承Exception或RuntimeException创建自定义异常:
class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
// 使用示例
throw new CustomException("This is a custom error");
检查型与非检查型异常
-
检查型异常(Checked Exception)
必须被捕获或在方法签名中声明:
public void readFile() throws IOException { throw new IOException("File not found"); } -
非检查型异常(Unchecked Exception)
通常继承自RuntimeException,无需显式声明:throw new NullPointerException("Object is null");
异常链
通过构造器或initCause()方法链接异常:
try {
// 某些操作
} catch (IOException e) {
throw new CustomException("Wrapper message", e);
}
最佳实践
- 优先使用标准异常(如
IllegalArgumentException) - 异常消息应清晰描述问题
- 避免过度使用检查型异常
- 自定义异常需提供有用的构造方法
重抛异常
捕获后重新抛出时保留原始堆栈:
try {
// 代码逻辑
} catch (Exception e) {
throw e; // 直接重抛
}
注意:Java 7+支持更精确的重抛语法,编译器会自动推断异常类型。




