举一个使用@controlleradvice的例子以及代码
时间: 2024-02-18 09:04:09 浏览: 20
@ControllerAdvice是Spring框架中的一个注解,用于定义通用的异常处理或数据绑定规则,可以被所有的@Controller控制器所共享,减少代码的重复性。举个例子,假设我们的系统中有多个Controller需要处理异常,可以通过@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;
}
}
```
在上面的例子中,GlobalExceptionHandler是一个全局异常处理器,用于处理所有Controller中的异常。@ExceptionHandler注解用于指定处理的异常类型,这里我们处理所有的Exception。在defaultErrorHandler方法中,我们可以通过HttpServletRequest获取请求的URL,然后将异常信息和URL添加到ModelAndView中,最后返回一个error视图。这样,当系统中出现异常时,就会自动跳转到error视图,显示异常信息和请求URL。