酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

springboot全局异常处理

在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中抛出异常,都会被这个全局异常处理器捕获并进行处理。 [2023-12-07 15:01:56 | AI写代码神器 | 334点数解答]

相关提问