【发布时间】:2018-03-10 09:17:24
【问题描述】:
我正在使用 spring mvc,来处理我使用全局异常处理程序的异常
@ControllerAdvice
public class GlobalControllerExceptionHandler {
@ResponseStatus(value = HttpStatus.CONFLICT, reason = "Data integrity violation")
@ExceptionHandler({DataIntegrityViolationException.class})
public @ResponseBody AdminResponse handleConflict(DataIntegrityViolationException ex,HttpServletResponse httpServletResponse) {
AdminResponse error = new AdminResponse ();
error.setStatus(Status.FAILURE);
error.setErrorDescription(ex.getMessage());
return error;
}
Spring 处理捕捉DataIntegrityViolationException,但我需要扩展DataIntegrityViolationException,同时我不能强制Spring 捕捉我的自定义异常。
捕获DataIntegrityViolationException时如何告诉Spring抛出我的自定义异常@
【问题讨论】:
-
与
throw?! -
@Oleg ,我需要的是让 Spring 处理它,每当 Spring 捕获 DataIntegrityViolationException 时,它应该抛出我的自定义异常。
-
对不起,我不明白,
throw随便你的handleConflict方法。 -
@Oleg,在 Spring 中我们不使用 try 和 catch 来捕获异常,Spring 框架具有 ControllerAdvice 注解功能,可以捕获某种异常,无需开发人员代码。现在 Spring 可以捕获 DataIntegrityViolationException,我需要的是当 Spring 捕获 DataIntegrityViolationException 我希望 Spring 抛出并处理另一个(我的异常)异常。
-
无论如何,祝你好运。
标签: java spring spring-mvc exception-handling