【发布时间】:2013-04-16 20:23:57
【问题描述】:
我正在使用 Spring 3.2.1 并且有一个 PropertyEditorSupport 来强制我想要自动转换为大写枚举的参数,以便它转换错误大小写的参数。如果参数 String 无法转换为枚举,则可以抛出 IllegalArgumentException。我的问题是状态码应该是 400 时返回为 500。我创建了一个带有 @ControllerAdvice 注释的 ResponseEntityExceptionHandler 和一个带有 @ExceptionHandler (IllegalArgumentException.class) 注释的方法,打算在那里设置状态码,但方法是抛出异常时从不调用。为什么不?是否与此处讨论的问题相同,MaxUploadSizeExceededException doesn't invoke the exception handling method in Spring?即
"...在请求到达之前抛出异常 调度程序 servlet。因此不会调用您的异常处理程序 因为在抛出异常时,目标控制器已经 尚未确定。”
如果是这样,我怎样才能返回正确的状态码?
【问题讨论】:
标签: spring spring-mvc exception-handling