@ExceptionHandler在处理不同异常的时候如何区分
时间: 2023-08-10 22:57:06 浏览: 151
在使用 `@ExceptionHandler` 处理不同异常时,可以通过参数来区分不同的异常类型。在方法签名中,可以添加一个参数来接收异常对象,然后根据这个参数的类型来区分不同的异常。
例如,假设有两种异常类型:`ExceptionA` 和 `ExceptionB`,我们可以定义两个不同的 `@ExceptionHandler` 方法来处理它们:
```java
@ExceptionHandler(ExceptionA.class)
public ResponseEntity<String> handleExceptionA(ExceptionA ex) {
// 处理 ExceptionA 的逻辑
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("处理 ExceptionA 的逻辑");
}
@ExceptionHandler(ExceptionB.class)
public ResponseEntity<String> handleExceptionB(ExceptionB ex) {
// 处理 ExceptionB 的逻辑
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("处理 ExceptionB 的逻辑");
}
```
当发生 `ExceptionA` 类型的异常时,第一个方法会被调用;当发生 `ExceptionB` 类型的异常时,第二个方法会被调用。通过这种方式,我们可以根据不同的异常类型来执行相应的处理逻辑。
阅读全文