java 自定义异常类

来源:互联网 发布:海信电视推荐 知乎 编辑:程序博客网 时间:2024/06/02 16:19

异常代码接口:

package com.bjhy.dataz.common.exception;/** *  * <pre> * 异常代码接口 * 用枚举对此接口进行实现,并配合DataZException异常类产出异常 *  * </pre> *  */public interface ErrorCode {// 错误码编号String getCode();// 错误码描述String getDescription();//打印重写String toString();}
异常打印类

package com.bjhy.dataz.common.exception;import java.io.PrintWriter;import java.io.StringWriter;/** * 异常打印 *  * */public final class ExceptionTracker {    public static final int STRING_BUFFER = 1024;    public static String trace(Throwable ex) {        StringWriter sw = new StringWriter(STRING_BUFFER);        PrintWriter pw = new PrintWriter(sw);        ex.printStackTrace(pw);        return sw.toString();    }}
异常类

package com.bjhy.dataz.common.exception;/** * dataZ框架异常类 * * */public class DataZException extends RuntimeException {    private static final long serialVersionUID = 1L;    private ErrorCode errorCode;    public DataZException(ErrorCode errorCode, String errorMessage) {        super(errorCode.toString() + " - " + errorMessage);        this.errorCode = errorCode;    }    private DataZException(ErrorCode errorCode, String errorMessage,                           Throwable cause) {        super(errorCode.toString() + " - " + getMessage(errorMessage)                + " - " + getMessage(cause), cause);        this.errorCode = errorCode;    }    public static DataZException asDataXException(ErrorCode errorCode, String message) {        return new DataZException(errorCode, message);    }    public static DataZException asDataXException(ErrorCode errorCode, String message,                                                  Throwable cause) {        if (cause instanceof DataZException) {            return (DataZException) cause;        }        return new DataZException(errorCode, message, cause);    }    public static DataZException asDataXException(ErrorCode errorCode,                                                  Throwable cause) {        if (cause instanceof DataZException) {            return (DataZException) cause;        }        return new DataZException(errorCode, getMessage(cause), cause);    }    public ErrorCode getErrorCode() {        return this.errorCode;    }    private static String getMessage(Object obj) {        if (obj == null) {            return "";        }        if (obj instanceof Throwable) {            return ((Throwable) obj).getMessage();        } else {            return obj.toString();        }    }}




0 0
原创粉丝点击