在早期的时候,我们写Controller都会自定义一个BaseController,在BaseController中处理公共代码,包括异常处理等,Spring也为这种场景做了解决方案,就是使用@ControllerAdvice和@ExceptionHandler,使用方式如下:
@ControllerAdvice
public class ErrorHandler {
private static final Logger logger = LoggerFactory.getLogger(ErrorHandler.class);
@ExceptionHandler(value = { Exception.class, RuntimeException.class })
public String error500(HttpServletRequest request, Exception e) {
logger.error(e.getMessage(), e);
logger.error(request.getRequestURL() + "encounter 500");
return "error/500";
}
}