假设Spring Boot(2.1)具有@RestControllerAdvice
,它可以处理一些自定义异常。
如果在异常处理程序调用期间抛出另一个异常怎么办?有一种方法可以处理它,而不是让Spring发送自己的响应正文,该响应正文可能类似于:
{
"timestamp": "2020-01-31T03:03:55.228+0000",
"status": 500,
"error": "Internal Server Error",
"message": "account: 2",
"path": "/myendpoint/2"
}
@RestControllerAdvice
public class MyExceptionHandler {
@Autowired
private MyOtherService otherService;
@ExceptionHandler(SomeCustomException.class)
public ResponseBody<Object> handleCustomException(SomeCustomException ex) {
otherService.doSomething(); // This might throw, say, a RuntimeException
return new ResponseBody<>(/* ... */);
}
}