自定义异常通过继承Exception或RuntimeException实现,提供构造方法并可在异常中添加错误码等信息,用于处理特定业务错误,提升代码可读性和维护性。

在Java中,自定义异常类是为了处理程序中特定业务场景下的错误情况,使代码更清晰、可维护性更强。Java允许开发者通过继承Exception或其子类来创建自己的异常类型。
1. 自定义异常的基本实现步骤
要创建一个自定义异常类,通常需要以下几步:
- 创建一个新的类,继承
Exception(检查型异常)或RuntimeException(非检查型异常) - 提供无参构造方法和带消息参数的构造方法
- (可选)添加其他有用的方法或字段
public class InvalidAgeException extends Exception {
public InvalidAgeException() {
super();
}
public InvalidAgeException(String message) {
super(message);
}
}
这个异常可以在年龄不合法时抛出,比如注册系统中年龄小于0或大于150的情况。
2. 使用自定义异常
定义好异常类后,可以在业务逻辑中使用throw关键字主动抛出异常。
立即学习“Java免费学习笔记(深入)”;
示例:在方法中使用自定义异常public class Person {
private int age;
public void setAge(int age) throws InvalidAgeException {
if (age < 0 || age > 150) {
throw new InvalidAgeException("年龄必须在0到150之间");
}
this.age = age;
}
}
调用该方法时,必须处理这个异常,因为它是检查型异常:
try {
Person person = new Person();
person.setAge(200);
} catch (InvalidAgeException e) {
System.out.println("错误:" + e.getMessage());
}
3. 自定义运行时异常(非检查型异常)
如果不想强制调用者处理异常,可以继承RuntimeException。
public class BusinessException extends RuntimeException {
public BusinessException(String message) {
super(message);
}
}
这种异常不需要在方法签名中声明,适用于程序无法恢复的错误。
4. 添加额外信息(可选扩展)
有时你可能希望异常携带更多信息,比如错误码、时间戳等。
public class ErrorCodeException extends Exception {
private String errorCode;
public ErrorCodeException(String message, String errorCode) {
super(message);
this.errorCode = errorCode;
}
public String getErrorCode() {
return errorCode;
}
}
这样在捕获异常时,可以获取错误码进行分类处理。
基本上就这些。自定义异常的关键是继承合适的父类并合理封装错误信息,让异常更有意义。










