有没有办法处理Spring中自定义异常处理程序内部抛出的异常?

时间:2020-01-31 03:15:59

标签: java spring spring-boot spring-mvc exception

假设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<>(/* ... */);
  }
}

1 个答案:

答案 0 :(得分:0)

ExceptionHandler是一个fault barrier,因此您需要处理该异常而不抛出另一个异常。

相关问题