SpringMVC 全局异常处理注解@ExceptionHandler,把异常打印到日志

1,586 阅读1分钟

@ControllerAdvice跟@ExceptionHandler配合使用,达到控制全局异常的效果。

1. 配置controller

这里直接把接收到的exception传给日志,会打印e.printStackTrace的内容,便于调试。

@ControllerAdvice
@Controller
public class TestExceptionController {
	Logger logger = LoggerFactory.getLogger(TestExceptionController.class);
	
	@ExceptionHandler(Exception.class)
	public String showErr(Exception e) {
		logger.error("error message: {}", e);
		return "exception";
	}
	
	@ResponseBody
	@RequestMapping("error")
	public String withError() {
		int a = 1/0;
		return "error.";
	}
}

访问https://localhost:8443/test/error,触发java.lang.ArithmeticException: / by zero

可以看到错误信息被打印到日志