Skip to content

后端开发 异常处理

李昌文 edited this page Nov 11, 2018 · 3 revisions

异常处理

在系统中处理异常的时候,只需要抛出OneBaseException异常即可,前端页面会弹框显示异常信息,不需要再单独对异常进行处理。

系统对异常的处理

系统中异常处理包括以下步骤:

  1. 业务代码抛出异常;
  2. 在Advice中拦截异常,并将异常信息封装未前端可解析的JSON串;
  3. 在前端的axios中拦截信息,解析出异常信息,并弹框显示异常信息。

抛出异常

在系统中处理异常的时候,只需要抛出OneBaseException异常即可。

@GetMapping("/{fileId}")
public void downFile(HttpServletResponse response, @PathVariable String fileId) {
    SysFileEO sysFileEO = sysFileEOService.get(fileId);
    if (sysFileEO != null) {
        ...
    } else {
        throw new OneBaseException("文件不存在");
    }
}

异常捕获

在one-base工程中的advice包下面,有几个ControllerAdvice用于拦截异常。

前端显示异常信息

one-ui/src/common/utils/init/installAxios.js文件中添加了axios拦截器对异常信息进行处理

异常日志

为了方便线上环境追溯异常,系统记录了所有请求信息,并在发生异常的情况下记录异常信息。

拦截器

系统是通过拦截器WebLogAspect将所有请求信息都记录到sys_log中。如果该请求发生异常,同时也会将异常信息记录到sys_log中。

日志查询

可以通过菜单系统监控 - 访问日志对请求信息查询,同时也能查看日志信息中的异常。