springboot全局异常处理
时间: 2023-09-03 14:15:48 浏览: 93
springboot系列教程(三):全局异常映射(含源码)
在 Spring Boot 中,可以通过实现 ExceptionHandler 接口来实现全局异常处理。全局异常处理可以捕获所有未被处理的异常,从而避免应用程序因异常而崩溃。下面是一个简单的全局异常处理示例:
1. 创建一个异常处理类,例如 GlobalExceptionHandler:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest request, Exception e) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("exception", e);
mav.addObject("url", request.getRequestURL());
mav.setViewName("error");
return mav;
}
}
```
2. 在应用程序的配置文件中添加以下内容:
```properties
spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false
```
这将确保在找不到处理程序时抛出异常,并禁用资源处理程序。
3. 创建一个 HTML 错误页面,例如 error.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>Error</title>
</head>
<body>
<h2>Error</h2>
<p>Exception: ${exception.message}</p>
<p>URL: ${url}</p>
</body>
</html>
```
这个页面将显示异常信息和请求的 URL。
现在,当应用程序抛出未处理的异常时,将显示错误页面,并显示异常信息和请求 URL。
阅读全文