我正在使用Spring 3.2.1并且有一个PropertyEditorSupport
来强制一个参数我想自动转换为一个枚举为大写,以便它转换错误的参数。如果参数String不能转换为枚举,则可以抛出IllegalArgumentException
。我的问题是当它应该是400时,状态码返回为500.我创建了一个ResponseEntityExceptionHandler
注释为@ControllerAdvice
,并且注释了方法@ExceptionHandler (IllegalArgumentException.class)
,打算在那里设置状态码,但是当异常是抛出。为什么不?这是否与此处讨论的问题相同,MaxUploadSizeExceededException doesn't invoke the exception handling method in Spring?即ControllerAdvice ExceptionHandler未从PropertyEditorSupport调用
” ...的异常被抛出的要求已达到 调度的servlet之前。因此您的ExceptionHandler不是因为在该点的异常被抛出的目标控制器称为 已 尚未确定“。
如果是的话我该如何返回正确的状态码?