Java 自定义异常

注:建议先阅读 Java 异常分类

Java 中使用自定义异常类,一般是继承 Exception 或者它的某个子类。如果父类是 RuntimeException 或它的某个子类,则自定义异常也是未受检异常;如果是 Exception 或 Exception 的其他子类,则自定义异常是受检异常。

Java 中的一些异常类(比如 NullPointerException)其实并没有比 Throwable 这个基类多多少属性和方法,大部分类在继承父类后只是定义了几个构造方法,这些构造方法也只是调用了父类的构造方法,并没有额外的操作。

之所以定义这么多不同的类,主要是为了名字不同。异常类的名字本身就代表了异常的关键信息,无论是抛出还是捕获异常,使用合适的名字都有助于代码的可读性和可维护性。

所以,有时候我们自定义的异常也不会定义额外的属性和代码,只是继承父类,然后定义几个构造方法,调用父类的构造方法。

public class AppException extends Exception {
public AppException() {
super();
}
public AppException(String message, Throwable cause) {
super(message, cause);
}
public AppException(String message) {
super(message);
}
public AppException(Throwable cause) {
super(cause);
}
}

当然,我们也可以根据需要定义一些额外的属性和方法:

public class CustomerException extends RuntimeException {
private String retCd ; // 异常对应的返回码
private String msgDes; // 异常对应的描述信息
public CustomerException() {
super();
}
public CustomerException(String message) {
super(message);
msgDes = message;
}
public CustomerException(String retCd, String msgDes) {
super();
this.retCd = retCd;
this.msgDes = msgDes;
}
public String getRetCd() {
return retCd;
}
public String getMsgDes() {
return msgDes;
}
}

参考:Java 编程的逻辑Java 自定义异常与异常使用最佳实践

posted @   Higurashi-kagome  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示