java - 有没有办法处理从 Spring 中的自定义异常处理程序内部抛出的异常?
问题描述
假设一个 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<>(/* ... */);
}
}
解决方案
ExceptionHandler 是一个故障屏障,因此您需要在不抛出另一个异常的情况下处理该异常。
推荐阅读
- .htaccess - 显示错误 404 .htaccess 的空参数
- ios - Firebase - for loop Swift 内嵌套的 observeSingleEvent 方法
- django - 如何在基于类的视图中有多个发布请求处理方法
- node.js - 带有 ExpressJS 的 NodeJS
- powershell - 在 if 语句中组合多个条件
- extjs - 重新计算模型的字段
- haskell - 使用 Haskell 读取 OBJ 文件
- python - python setup.py 在没有 sudo 的情况下安装在 anaconda 中
- .htaccess - 我如何分离主域和子域使用 mod-rewrite 和 htaccess 文件
- django - Django:跨内联表单将实例传输到模板