私はSpring 3.2.1を使用しておりPropertyEditorSupport
、列挙型に自動変換したいパラメーターを大文字に強制する必要があるため、大文字と小文字の異なるパラメーターが変換されます。IllegalArgumentException
パラメータ String を列挙型に変換できない場合は、 がスローされる可能性があります。私の問題は、ステータス コードが 400 であるべきときに 500 として返されることです。ステータス コードをそこに設定するつもりで、 ResponseEntityExceptionHandler
annotated with@ControllerAdvice
および with a method annotatedを作成しました@ExceptionHandler (IllegalArgumentException.class)
が、例外がスローされたときにメソッドが呼び出されることはありません。なぜだめですか?MaxUploadSizeExceededException が Spring で例外処理メソッドを呼び出さない、ここで説明したのと同じ問題ですか? すなわち
「...リクエストがディスパッチャーサーブレットに到達する前に例外がスローされます。したがって、例外がスローされた時点でターゲットコントローラーがまだ決定されていないため、例外ハンドラーは呼び出されません。」
もしそうなら、どうすれば適切なステータスコードを返すことができますか?