欢迎你访问!
百乐门电玩城 > 百乐门电玩城 > 正文

【原创】定义了2个异常类和1个规范,异常的那点

发布时间:2018-04-08  浏览次数:    

前几年,有幸到一家公司做微服务框架级别的开发工作。在刚接手之前框架的时候,看到公共组件里有一个叫做ApplicationRuntimeException的类。

于是我就问开发组长:”有一个ApplicationRuntimeException类,是干嘛的?从名字看像是要抛出运行时异常吗?“

开发组长说:“对啊。”

我沉默了2分钟,然后默默的回到自己的座位,写下了以下方案和异常规范。

1. 在框架上,做了两件事情

加入全局异常捕获,使用AOP在接口层捕获异常,并统一处理接口中漏掉没有处理的异常

自定义两个异常父类ApplicationException和BusinessException,香港新铁算盘,这两个异常类都是check exception。ApplicationException应用于非业务异常,例如:数据库操作,IO异常等;BusinessException应用于业务异常,例如:保存用户失败等。

2. 制定异常规范

禁止将任何异常以任何形式抛出给服务调用方

禁止自定义并抛出运行时异常(uncheck exception)

禁止使用异常处理作为逻辑分支判断的条件

禁止捕获异常后,不做任何处理。

所有自定义异常都必须继承自ApplicationException或者BusinessException。

推荐多使用自定义异常,并明确分类,避免对大段代码进行try...catch操作

自此后,总是感受到开发组长对我投来崇拜的目光。

图片来自网络,版权归原作者