Java 如何优雅的抛出业务异常
记得上学的时候学习英语,每个英语老师说到英语翻译的时候都会说英语翻译要做到“信、达、雅”。如今做了一名程序员竟然体会我还是想用这三种境界来要求自己,恰逢自己现在所做之项目偏业务,代码的优雅显得格外重要。所以我就想写点这方面的东西,今天就先来说说如何优雅的抛出业务异常。代码千千万,只希望对自己和对大家有所帮助。
针对java开发者而言,异常的重要性不言而喻,这里也不再赘述。今天主要说说在业务中利用异常处理机制来实现业务异常的优雅提示。
首先,我们定义一个异常编码接口
publicinterfaceIErrorCode{
publicStringvalue();
}
重点来了,我们去实现这个接口
importjava.util.EnumMap;
importcom.test.IErrorCode;
publicenumMyBusinessErrorCodeimplementsIErrorCode{
/**
*角色不存在或已被删除
*/
ERR_MODEL_001,
/**
*角色编码已存在
*/
ERR_MODEL_002;
privatestaticEnumMaperrorCodeMap=newEnumMap(
MyBusinessErrorCode.class);
static{
errorCodeMap.put(ERR_MODEL_001,"角色不存在!");
errorCodeMap.put(ERR_MODEL_002,"角色编码已存在!");
}
publicStringvalue(){
returnerrorCodeMap.get(this);
}
}
下面我们来说说这段代码好在哪里,
- 统一定义异常提示,易于维护,易于国际化配置化。
- 采用枚举Map运行效率更高。
- 代码逻辑清晰,更容易上手,更容易统一风格。
那么如何在代码中去使用呢?
首先,创建一个创建异常的工具类
publicclassExceptionUtil{
/**
*获取业务异常类
*/
publicstaticBusinessExceptionCreateBusinessException(
IErrorCodecode){
returnnewBusinessException(code);
}
/**
*获取带数据格式化的业务异常类
*
*@paramcode
*/
publicstaticBusinessExceptionCreateFormatedBusinessException(BusinessErrorCodecode,Object...object){
Stringstr=code.value();
str=String.format(str,object);
returnnewBusinessException(code.name(),str,"");
}
}
在对应的业务方法捕获并处理异常
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
Datedate;
try{
//申请时间
date=sdf.parse(form.getApplyDateView());
}catch(ParseExceptione){
throwExceptionUtil.CreateBusinessException(MyBusinessErrorCode.ERR_RBM_005);
}
至此,业务异常就得到了优雅的处理。
以上就是Java如何优雅的抛出业务异常的详细内容,更多关于java抛出业务异常的资料请关注毛票票其它相关文章!