Java异常封装(自定义错误信息和描述)

2023-02-28,,

一、checked异常和unchecked异常
checked异常:
unchecked异常:
二、异常封装示例
2.1、添加一个枚举LuoErrorCode.java如下:
2.2、创建一个异常类BusinessException.java,继承RuntimeException:
2.3、测试类ExceptionTest.java:


一、checked异常和unchecked异常

checked异常:

表示无效,不是程序中可以预测的。比如无效的用户输入,文件不存在,网络或者数据库链接错误。这些都是外在的原因,都不是程序内部可以控制的。

必须在代码中显式地处理。比如try-catch块处理,或者给所在的方法加上throws说明,将异常抛到调用栈的上一层。

继承自java.lang.Exception(java.lang.RuntimeException除外)。

unchecked异常:

表示错误,程序的逻辑错误。是RuntimeException的子类,比如IllegalArgumentException, NullPointerException和IllegalStateException。

不需要在代码中显式地捕获unchecked异常做处理。

继承自java.lang.RuntimeException(而java.lang.RuntimeException继承自java.lang.Exception)。


二、异常封装示例

2.1、添加一个枚举LuoErrorCode.java如下:

public enum LuoErrorCode {

    NULL_OBJ("LUO001","对象为空"),
ERROR_ADD_USER("LUO002","添加用户失败"),
UNKNOWN_ERROR("LUO999","系统繁忙,请稍后再试...."); private String value;
private String desc; private LuoErrorCode(String value, String desc) {
this.setValue(value);
this.setDesc(desc);
} public String getValue() {
return value;
} public void setValue(String value) {
this.value = value;
} public String getDesc() {
return desc;
} public void setDesc(String desc) {
this.desc = desc;
} @Override
public String toString() {
return "[" + this.value + "]" + this.desc;
}
}

2.2、创建一个异常类BusinessException.java,继承RuntimeException:

public class BusinessException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    public BusinessException(Object Obj) {
super(Obj.toString());
} }

第一点是其继承了RuntimeException,因为一般我们的业务异常都是运行时异常。第二点,这里的构造方法调用父方法super(Obj.toString());

2.3、测试类ExceptionTest.java:

public class ExceptionTest {

    public static void main(String args[]) {
Object user = null;
if(user == null){
throw new BusinessException(LuoErrorCode.NULL_OBJ);
}
}
}

原文链接:

Java异常封装(自己定义错误码和描述,附源码)

Java异常封装(自定义错误信息和描述)的相关教程结束。

《Java异常封装(自定义错误信息和描述).doc》

下载本文的Word格式文档,以方便收藏与打印。