我正在使用 Spring 3.2.1 并且有一个PropertyEditorSupport
强制参数我想自动转换为大写的枚举,以便它转换错误大小写的参数。如果IllegalArgumentException
参数 String 无法转换为枚举,则可以抛出一个。我的问题是状态码在应该是 400 时返回为 500。我创建了一个ResponseEntityExceptionHandler
带有注释@ControllerAdvice
的方法和一个方法 annotated @ExceptionHandler (IllegalArgumentException.class)
,打算在那里设置状态码,但是当抛出异常时该方法永远不会被调用。为什么不?和这里讨论的问题一样吗,MaxUploadSizeExceededException 没有调用 Spring 中的异常处理方法?IE
“...在请求到达调度程序 servlet 之前引发异常。因此,您的异常处理程序不会被调用,因为在引发异常时目标控制器尚未确定。”
如果是这样,我怎样才能返回正确的状态码?