应用异常处理方案设计

整体思路

  1. 应用内部:在逻辑上对应用分层,所有的异常统一抛到某层处理(日志处理和异常封装);
  2. 对外服务或接口:统一返回封装成Result返回,如下图所示:

        这里写图片描述

应用分层

    这里写图片描述

  • 开放接口层:对外暴露的RPC 接口等;
  • 显示层:模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染,JSP 渲染,移动端展示等。
  • Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。
  • Service 层:相对具体的业务逻辑服务层。
  • Manager 层:通用业务处理层,它有如下特征:1) 对第三方平台封装的层,预处理返回结果及转化异常信息;2) 对 Service 层通用能力的下沉,如缓存方案、中间件通用处理;3) 与 DAO 层交互,对多个 DAO 的组合复用。
  • DAO 层:数据访问层,与底层 MySQL、Oracle、Hbase 等进行数据交互。
  • 外部接口或第三方平台:包括其它部门 RPC 开放接口,基础平台,其它公司的 HTTP 接口。

类体系

这里写图片描述
  应用分层后,每层有一个异常基类,对于核心层如业务处理层,可以进一步细化异常(如按照链路等),方便异常排查。

参考:

  1. 阿里巴巴Java开发手册;

猜你喜欢

转载自blog.csdn.net/yangguosb/article/details/80328511
今日推荐