统一异常拦截处理方式
I. 借助@ControllerAdvice
拦截异常
给一个简单的demo,便可以很容易的了解这种手段如何处理了
@ControllerAdvice
@Slf4j
@ResponseBody
public class ActionExceptionHandler {
@ExceptionHandler(value = Exception.class)
public String defaultHandler(HttpServletRequest request, Exception e) {
log.error("unexpected exception! request: {}, params: {} refer: {}, e: {}",
request.getRequestURI(),
request.getParameterMap(),
request.getHeader("referer"),
e);
if (StringUtils.isBlank(e.getMessage())) {
return ResponseWrapper.errorReturn(new Status(500, "内部异常"));
} else {
return ResponseWrapper.errorReturn(new Status(500, e.getMessage()));
}
}
}
这里主要借助两个注解来实现,ControllerAdvice 和 ExceptionHandler
II. 其他
声明
尽信书则不如,已上内容,纯属一家之言,因本人能力一般,见解不全,如有问题,欢迎批评指正