您的位置:首页 > 编程语言 > Java开发

java 自定义异常类

2016-03-01 16:14 148 查看
异常代码接口:

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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: