@ExceptionHandler的功能
时间: 2024-06-14 21:05:07 浏览: 138
@ExceptionHandler注解是Spring框架提供的一个注解,用于处理控制器中抛出的异常。它可以让我们更灵活地对不同的异常进行分别的处理,并且可以捕获和处理指定异常的子类。
以下是@ExceptionHandler的功能演示:
```java
@Controller
public class MyController {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception ex) {
// 处理Exception及其子类的异常
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
}
@ExceptionHandler(MyCustomException.class)
public ResponseEntity<String> handleCustomException(MyCustomException ex) {
// 处理自定义异常MyCustomException
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Bad Request");
}
}
```
在上面的示例中,我们定义了两个异常处理方法。第一个方法使用@ExceptionHandler(Exception.class)注解,用于处理所有的Exception及其子类的异常。第二个方法使用@ExceptionHandler(MyCustomException.class)注解,用于处理自定义异常MyCustomException。
当控制器中抛出异常时,Spring框架会根据异常类型选择合适的异常处理方法进行处理。如果抛出的异常是Exception及其子类,将会调用handleException方法;如果抛出的异常是MyCustomException,将会调用handleCustomException方法。
通过使用@ExceptionHandler注解,我们可以根据具体的异常类型来定制异常处理逻辑,从而实现更灵活的异常处理。
阅读全文