@TargetSE(valueSE=METHODSE) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface ExceptionHandler
このアノテーションが付けられたハンドラーメソッドは、非常に柔軟な署名を持つことができます。次の型のパラメーターを任意の順序で持つことができます。
value() を介して例外型を絞り込まない場合のマッピングヒントとしても機能します。ServletRequestEE/HttpServletRequestEE または PortletRequest/ActionRequest/RenderRequest) を選択できます。ポートレットの場合、明示的に宣言されたアクション / レンダリング引数は、特定のリクエスト型をハンドラーメソッドにマッピングするためにも使用されることに注意してください (アクションリクエストとレンダリングリクエストを区別する他の情報が指定されていない場合)。HttpSessionEE または PortletSession のいずれか。この型の引数は、対応するセッションの存在を強制します。結果として、このような引数が null になることはありません。 特にサーブレット環境では、セッションアクセスがスレッドセーフではない可能性があることに注意してください。複数のリクエストが同時にセッションにアクセスできるようにする場合は、"synchronizeOnSession" フラグを "true" に切り替えることを検討してください。WebRequest または NativeWebRequest。ネイティブサーブレット / ポートレット API に縛られることなく、汎用リクエストパラメーターアクセスとリクエスト / セッション属性アクセスを可能にします。LocaleSE (使用可能な最も具体的なロケールリゾルバーによって決定されます。つまり、サーブレット環境では構成された LocaleResolver、ポートレット環境ではポータルロケール)。InputStreamSE/ReaderSE。これは、サーブレット / ポートレット API によって公開される生の InputStream/ リーダーになります。OutputStreamSE/WriterSE。これは、サーブレット / ポートレット API によって公開される生の OutputStream/Writer になります。Model。例外固有のビュー用にモデルを準備するのに便利なように、提供されたモデルには通常のモデル属性が事前に設定されておらず、常に空であることに注意してください。ハンドラーメソッドでは、次の戻り値の型がサポートされています。
ModelAndView オブジェクト (サーブレット MVC またはポートレット MVC)。RequestToViewNameTranslator を介して暗黙的に決定されたビュー名を持つ Model オブジェクト。MapSE オブジェクト。ビュー名は RequestToViewNameTranslator を介して暗黙的に決定されます。View オブジェクト。StringSE 値。@ResponseBody アノテーション付きメソッド (サーブレットのみ) は、レスポンスコンテンツを設定します。戻り値は、メッセージコンバーターを使用してレスポンスストリームに変換されます。HttpEntity<?> または ResponseEntity<?> オブジェクト (サーブレットのみ)。ResponseEntity 本文は、メッセージコンバーターを使用して変換され、レスポンスストリームに書き込まれます。ServletResponseEE/HttpServletResponseEE/RenderResponse の引数を宣言する)またはビュー名が RequestToViewNameTranslator を通じて暗黙的に決定されることになっている場合(ハンドラーメソッドシグネチャーでレスポンス引数を宣言しない、サーブレット環境にのみ適用可能)は void です。 サーブレット環境では、ExceptionHandler アノテーションを @ResponseStatus と組み合わせて、HTTP レスポンスのレスポンスステータスを定義できます。
注 : ポートレット環境では、ExceptionHandler アノテーション付きメソッドは、HandlerExceptionResolver Bean と同様に、レンダリングフェーズとリソースフェーズでのみ呼び出されます。アクションフェーズとイベントフェーズから持ち越された例外もレンダリングフェーズで呼び出され、該当するレンダリングメソッドを定義するコントローラークラスに例外ハンドラーメソッドが存在する必要があります。
WebRequest, AnnotationMethodHandlerExceptionResolver, AnnotationMethodHandlerExceptionResolver| 修飾子と型 | オプションの要素と説明 |
|---|---|
ClassSE<? extends ThrowableSE>[] | value アノテーション付きメソッドによって処理される例外。 |
public abstract ClassSE<? extends ThrowableSE>[] value