-
Notifications
You must be signed in to change notification settings - Fork 176
后端开发 异常处理
李昌文 edited this page Nov 11, 2018
·
3 revisions
在系统中处理异常的时候,只需要抛出OneBaseException异常即可,前端页面会弹框显示异常信息,不需要再单独对异常进行处理。
系统中异常处理包括以下步骤:
- 业务代码抛出异常;
- 在Advice中拦截异常,并将异常信息封装未前端可解析的JSON串;
- 在前端的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
中。
可以通过菜单系统监控 - 访问日志
对请求信息查询,同时也能查看日志信息中的异常。