spring ExceptionHandler
时间: 2023-08-23 19:08:21 浏览: 89
Spring的ExceptionHandler是一个用于处理异常的注解。它可以被应用于方法上,用于捕获和处理在方法执行过程中抛出的异常。当被注解的方法捕获到异常时,它将会根据异常类型来执行相应的处理逻辑。
使用ExceptionHandler时,需要在Controller类中定义一个或多个带有@ExceptionHandler注解的方法。这些方法应该具有与处理的异常类型相匹配的参数,并返回相应的处理结果。当被注解的方法捕获到指定类型的异常时,Spring将会调用相应的方法进行处理。
下面是一个示例:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception ex) {
// 处理异常逻辑
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
}
@ExceptionHandler(MyCustomException.class)
public ResponseEntity<String> handleCustomException(MyCustomException ex) {
// 处理自定义异常逻辑
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ex.getMessage());
}
}
```
在上面的例子中,`handleException`方法用于处理所有类型的异常。当任何未被其他方法处理的异常发生时,将会调用该方法。`handleCustomException`方法用于处理自定义的异常类型。
需要注意的是,`@ControllerAdvice`注解用于定义全局的异常处理类,它会被应用到所有的Controller中。这样就可以集中管理所有Controller中可能发生的异常,并提供统一的处理方式。
希望这个解答能够帮到你!如果有任何进一步的问题,请随时提问。
阅读全文