【发布时间】:2013-10-24 13:34:07
【问题描述】:
我知道 Exception 是所有异常的父级,但我认为当您使用特定异常类设置 @ExceptionHandler 时,它应该处理该特定异常。
也许您可以指出我在以下代码中遗漏的内容,因此 MethodArgumentNotValidException 将进入 processValidationError 方法而不是 processError 方法。
@ControllerAdvice
public class ExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public ValidationErrorDTO processError(Exception e) {
return processErrors(e);
}
}
@ControllerAdvice
public class OtherExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public ValidationErrorDTO processValidationError(MethodArgumentNotValidException ex) {
return processErrors(ex);
}
}
【问题讨论】:
-
您确定抛出了
MethodArgumentNotValidException而不是某个包装类吗? -
@SotiriosDelimanolis,your answer 不会在这里帮忙吗? :)
-
@MichałRybak 好像 OP 只有一个
@ControllerAdvice类。
标签: java spring spring-mvc exception-handling