javascript - 请问在一个多层的JAVA企业项目中,大家是如何设计统一异常处理的?
迷茫
迷茫 2017-04-10 17:27:43
0
2
294

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(2)
小葫芦

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

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

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

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿