我有一个控制器建议来处理我的 REST 控制器中的异常行为,我遇到了一种情况,即我必须有条件地处理SQLIntegrityConstraintViolationException
具有特定消息的消息(用于重复键的消息),返回 a 409
,让其他消息由默认处理程序(返回500
错误代码)。
我正在考虑两种可能的方法来实现这一目标:
- 在我的条件下,在 else 分支上抛出一个新的准系统
Exception
,所以处理是由 Spring 完成的。 - 显式调用通用异常处理程序(例如
return handleGeneralException(exception)
从我的 else 分支内部)。
我有一种“正确”的方法可以将我的一种异常的一小部分传递ControllerAdvice
给另一个处理程序,而不是“原始”处理程序?
编辑1:我想在我的ControllerAdvice中做这样的事情:
if (exception.getMessage.contains("something")) {
// handle exception
} else {
// pass to other handler
}