java 如何定义异常
定义自定义异常
在Java中,可以通过继承 Exception 或 RuntimeException 类来创建自定义异常。自定义异常通常用于表示特定于应用程序的错误情况。
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
检查型异常与非检查型异常
检查型异常(Checked Exception)继承自 Exception 类,必须在方法签名中声明或捕获。非检查型异常(Unchecked Exception)继承自 RuntimeException,不需要显式处理。
// 检查型异常
public class CheckedException extends Exception {
public CheckedException(String message) {
super(message);
}
}
// 非检查型异常
public class UncheckedException extends RuntimeException {
public UncheckedException(String message) {
super(message);
}
}
使用自定义异常
在代码中抛出异常时,使用 throw 关键字。调用可能抛出异常的方法时,使用 try-catch 块处理。
public void process() throws CustomException {
if (invalidCondition) {
throw new CustomException("Invalid condition encountered");
}
}
try {
process();
} catch (CustomException e) {
System.err.println("Error: " + e.getMessage());
}
重写异常方法
可以重写 Exception 类的方法,例如 toString() 或 getMessage(),以提供更详细的错误信息。
public class DetailedException extends Exception {
private String details;
public DetailedException(String message, String details) {
super(message);
this.details = details;
}
@Override
public String getMessage() {
return super.getMessage() + ". Details: " + details;
}
}
异常链
通过传递原始异常,可以保留异常的完整堆栈信息,便于调试和日志记录。
public class ChainedException extends Exception {
public ChainedException(String message, Throwable cause) {
super(message, cause);
}
}






