Spring Boot全局异常处理:实现HandlerExceptionResolver与使用@ControllerAdvice注解全解析
在Spring Boot中,全局异常处理可以通过实现HandlerExceptionResolver接口或者使用@ControllerAdvice注解来实现。 1. 实现HandlerExceptionResolver接口: ```java @Component public class GlobalExceptionHandler implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { // 这里可以捕获到所有控制器抛出的异常 ex.printStackTrace(); ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("exception", ex.getMessage()); modelAndView.setViewName("error"); // 设置跳转到error页面 return modelAndView; } } ``` 2. 使用@ControllerAdvice注解: ```java @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(value = Exception.class) public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception { ModelAndView mav = new ModelAndView(); mav.addObject("exception", e); mav.addObject("url", req.getRequestURL()); mav.setViewName("error"); return mav; } // 可以添加多个方法来处理不同类型的异常 @ExceptionHandler(value = IOException.class) public ModelAndView ioErrorHandler(HttpServletRequest req, IOException e) throws Exception { ModelAndView mav = new ModelAndView(); mav.addObject("exception", e); mav.addObject("url", req.getRequestURL()); mav.setViewName("ioError"); return mav; } } ``` 在上述代码中,我们定义了一个全局异常处理器,并指定了当发生异常时,跳转到哪个页面。这样,无论在哪个Controller中抛出异常,都会被这个全局异常处理器捕获并进行处理。 ######[AI写代码神器 | 334点数解答 | 2023-12-07 15:01:56]
- IntelliJ IDEA 搭建 Spring Boot 项目:从创建到 JPA 实体类及数据源配置全攻略(讯飞星火 | 920点数解答 | 2024-10-31 15:37:22)270
- Spring Boot 与 Vue 联手:轻松实现微信扫码登录全攻略(字节豆包 | 207点数解答 | 2025-05-13 09:12:19)174
- Spring框架实战:从配置到实现,搞定员工信息查询功能(GPT | 2135点数解答 | 2024-06-12 08:32:35)321
- JSP 实现商品展示模块:分页、搜索、交互与美观界面全搞定!(字节豆包 | 19点数解答 | 2024-12-13 15:00:43)349
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)362
- MySQL 数据库操作:用德鲁伊连接池和 Spring JDBC 实现 MVC 架构下 Student 表操作及事务测试全解析(字节豆包 | 1115点数解答 | 2025-03-19 11:17:31)301
- Spring JDBC+德鲁伊连接池:MVC架构下MySQL学生表查询、事务验证及代码实现全解析(DeepSeek | 1275点数解答 | 2025-03-19 11:21:32)289
- 超详细:使用Java 8创建连接MySQL数据库的Spring Boot项目全步骤( | 1491点数解答 | 2024-05-13 16:25:58)266
- IDEA搭建 Java 8 连接 MySQL 的 Spring Boot 项目全流程:从创建到测试( | 1985点数解答 | 2024-05-13 16:26:16)306
- 深度解析:Vue + Spring Boot 组合的应用优势与发展前景(字节豆包 | 587点数解答 | 2025-04-29 16:25:49)162
- 揭秘Spring Boot + Vue3前后端分离架构:从开发到安全的全方位技术优势(DeepSeek | 2255点数解答 | 2025-05-07 18:15:21)355
- 深度剖析:Spring Boot + Vue3 前后端分离架构的全方位技术优势(DeepSeek | 1760点数解答 | 2025-05-24 11:04:00)225