1:/src/main/resources下建立message\business_exception_message.properties文件,内容为key=value
2:编写读取properties文件的异常子类,通过Properties和静态代码块来获取信息,并load到Properties中去;
class BusinessException extends RuntimeException {
protected final static Properties properties = new Properties();
static {
final InputStream is = BusinessException.class
.getResourceAsStream("/message/business_exception_message.properties");
try {
properties.load(is);
} catch (final IOException e) {
// do nothing
}
}
}
3:继承以上基类,实现子类扩展,并建立异常定义枚举
class IntelligenProcessException extends BusinessException {
public enum Category {
OPERATE_SUCCESS("0x0014000000000000"), LACK_COMMAND_KEYWORD_CLIENT(
"0x0014000100000001"), Invalid_GUID("0x0014000100000002"), LACK_COMMAND_KEYWORD_PASS(
"0x0014000100000003");
String errorCode;
Category(String errorCode) {
this.errorCode = errorCode;
}
public IntelligenProcessException generateException() {
return new IntelligenProcessException(this.errorCode);
}
public IntelligenProcessException generateException(
final Throwable target) {
return new IntelligenProcessException(this.errorCode, target);
}
public String getErrorCode() {
return this.errorCode;
}
}
}
4:业务逻辑调用自定义异常类
throw DataServiceException.Category.CHECK_CONFLICT_GROUPID_EMPTY.generateException();