自定义异常通过继承Exception或RuntimeException实现,1. 创建类时提供多种构造方法以支持不同场景;2. 在业务逻辑中用throw抛出,如年龄非法时抛InvalidAgeException;3. 调用方需捕获处理检查型异常;4. 优点包括提升可读性、便于统一处理、支持异常链;5. 建议命名清晰、选择合适的父类、构建完整构造函数、大型项目中建立异常层级。

在Java中自定义异常类,主要是通过继承现有的异常类来实现,通常是继承 Exception(检查型异常)或 RuntimeException(非检查型异常)。这样可以让程序在特定业务场景下抛出更具语义的错误信息,提高代码可读性和维护性。
定义一个类并继承 Exception 或 RuntimeException 即可。通常建议提供多个构造方法,以支持不同的使用场景。
public class InvalidAgeException extends Exception {
// 无参构造
public InvalidAgeException() {
super();
}
// 接收消息字符串的构造
public InvalidAgeException(String message) {
super(message);
}
// 接收消息和原因的构造
public InvalidAgeException(String message, Throwable cause) {
super(message, cause);
}
// 接收异常原因的构造
public InvalidAgeException(Throwable cause) {
super(cause);
}
}
如果希望该异常不强制处理(即运行时异常),可以继承 RuntimeException:
public class BusinessException extends RuntimeException {
public BusinessException(String message) {
super(message);
}
}
在业务逻辑中,根据条件使用 throw 关键字抛出异常。
立即学习“Java免费学习笔记(深入)”;
public class Person {
private int age;
public void setAge(int age) throws InvalidAgeException {
if (age < 0 || age > 150) {
throw new InvalidAgeException("年龄不能为负数或超过150");
}
this.age = age;
}
}
调用该方法时,必须处理该异常(因为是检查型异常):
public static void main(String[] args) {
Person person = new Person();
try {
person.setAge(-5);
} catch (InvalidAgeException e) {
System.out.println("错误: " + e.getMessage());
}
}
以上就是如何在Java中自定义异常类的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号