java 如何抛出异常
抛出异常的方法
在 Java 中,可以通过 throw 关键字手动抛出异常。以下是具体的实现方式:
抛出已检查异常(Checked Exception)
需要声明方法可能抛出的异常类型,使用 throws 关键字在方法签名中指定。
public void checkAge(int age) throws IllegalArgumentException {
if (age < 18) {
throw new IllegalArgumentException("Age must be at least 18");
}
}
抛出运行时异常(Unchecked Exception) 运行时异常不需要在方法签名中声明。
public void divide(int a, int b) {
if (b == 0) {
throw new ArithmeticException("Division by zero is not allowed");
}
System.out.println(a / b);
}
自定义异常
可以通过继承 Exception 或 RuntimeException 创建自定义异常类。
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
// 使用自定义异常
public void process(int value) throws CustomException {
if (value < 0) {
throw new CustomException("Negative values are not allowed");
}
}
异常链
可以在抛出异常时保留原始异常的堆栈信息。
try {
// 可能抛出异常的代码
} catch (IOException e) {
throw new CustomException("Failed to process data", e);
}
最佳实践
- 优先使用 Java 内置的异常类型(如
IllegalArgumentException、NullPointerException)。 - 自定义异常应提供有意义的错误信息。
- 避免捕获异常后不处理或仅打印堆栈跟踪。
- 在方法文档中使用
@throws说明可能抛出的异常。






