spring框架全局异常处理
时间: 2023-07-20 20:21:58 浏览: 96
在Spring框架中,可以通过实现`HandlerExceptionResolver`接口或使用`@ControllerAdvice`注解来实现全局异常处理。
方式一:实现`HandlerExceptionResolver`
实现`HandlerExceptionResolver`接口,重写`resolveException()`方法,在该方法中处理异常并返回一个`ModelAndView`对象,然后在Spring配置文件中添加配置:
```xml
<bean id="handlerExceptionResolver" class="com.example.MyHandlerExceptionResolver"/>
```
方式二:使用`@ControllerAdvice`注解
使用`@ControllerAdvice`注解,创建一个类并在类中添加`@ExceptionHandler`注解,该注解用于捕获指定的异常类型,并在方法中处理异常并返回处理结果,代码示例:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception e) {
// 处理异常并返回结果
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("服务器内部错误");
}
}
```
需要注意的是,在使用`@ControllerAdvice`注解时,该类必须被Spring容器所管理,可以通过`@Component`注解或在Spring配置文件中进行配置。
阅读全文