【发布时间】:2020-12-02 05:46:56
【问题描述】:
我有一个控制器建议来处理我的 REST 控制器中的异常行为,我遇到了一种情况,我必须有条件地处理具有特定消息(重复键的消息)的 SQLIntegrityConstraintViolationException,返回 409 ,让其他的由默认处理程序处理(返回500 错误代码)。
我正在考虑两种可能的方法来实现这一目标:
- 根据我的情况在 else 分支上抛出一个新的裸机
Exception,因此处理由 Spring 完成。 - 显式调用通用异常处理程序(例如从我的 else 分支内部调用
return handleGeneralException(exception))。
我有一种“正确”的方式可以将我的ControllerAdvice 中的一小部分异常传递给另一个处理程序,而不是“原始”处理程序?
编辑 1: 我想在我的 ControllerAdvice 中做这样的事情:
if (exception.getMessage.contains("something")) {
// handle exception
} else {
// pass to other handler
}
【问题讨论】:
标签: java spring-boot rest exception controller-advice