SpringMVC如何实现全局异常处理 有没有好记的
时间: 2024-09-13 17:06:09 浏览: 53
利用springmvc切面捕获全局异常入库源码
SpringMVC实现全局异常处理主要依赖于@ControllerAdvice注解和@ExceptionHandler注解。以下是一个简单的步骤说明:
1. 使用@ControllerAdvice注解创建一个全局异常处理器类。该注解是Spring提供的一个注解,用于标记一个类为全局异常处理器。
2. 在该类中定义方法,并使用@ExceptionHandler注解标注该方法,用于处理特定的异常。@ExceptionHandler注解的value属性可以指定该方法处理的异常类型。
3. 在@ExceptionHandler标注的方法中,可以自定义异常处理逻辑,并返回合适的响应信息。通常这些方法会返回一个ModelAndView对象或者直接返回一个响应体。
例如:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
// 处理自定义异常MyException
@ExceptionHandler(MyException.class)
@ResponseBody
public Result handleMyException(MyException e) {
// 可以记录异常信息,或者封装返回的异常信息等
return new Result(e.getCode(), e.getMessage());
}
// 处理其他异常,比如NullPointerException等
@ExceptionHandler(Exception.class)
@ResponseBody
public Result handleException(Exception e) {
// 可以记录异常信息,或者封装返回的异常信息等
return new Result(500, "系统内部异常");
}
}
```
在上面的代码中,我们创建了一个名为`GlobalExceptionHandler`的全局异常处理器类,其中定义了两个异常处理方法:`handleMyException`和`handleException`。前者专门用于处理`MyException`类型的异常,后者用于处理其他类型的异常。当异常发生时,Spring会根据异常的类型自动找到对应的处理器方法。
阅读全文