异常代码接口:
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();
}
}
}