素材牛VIP会员
请问在一个多层的JAVA企业项目中,大家是如何设计统一异常处理的?
 威***军  分类:Java代码  人气:920  回帖:2  发布于6年前 收藏

请教各位在一个多层的JAVA企业应用中,统一的异常处理要考虑哪些方面?诸如如何设计自定义异常、如何捕获、是否需要定义错误码、哪些做成checked Exception,哪些做成unchecked Exception等等? 希望有高手不吝赐教:)

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv1 新人
真***溜 职业无 6年前#1

我现在暂时是这样处理的,很基础,自己回答下自己的问题算是抛砖引玉吧:

1、继承RuntimeException的BusinessException,统一作为抛出的异常;
2、定义ErrCode的枚举,定义BusinessException抛出的异常类型;
3、各层抛出的异常,除记录日志等处理外,业务层由Action层(即后台的最上层)统一catch并处理;(包括返回统一的出错页面)
4、普通方法返回的业务异常(程序是正常,但业务分支是错误的),通过返回值中的错误码返回;
5、对上述返回值定义一个CommonResult,包含错误码和回参的HashMap;
Lv1 新人
Sm***ty CEO 6年前#2

如果是spring,有ExceptionHandler,定义一个继承RuntimeException的APIException,里面包含不定变量status(HttpStatus),然后抛出的时候throw new APIException(“error_message”,HttpStatus.XXX)

然后在全局的ExceptionHandler里面捕捉APIException,handler里面做两样东西,1是对error_message的格式化,例如要求json,封装成json,然后带着传过来的Status做Response,如果是返回页面,Spring配置视图解析,然后返回字符串即可

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取