アノテーションインターフェース ExceptionHandler
@TargetSE(METHODSE)
@RetentionSE(RUNTIMESE)
@DocumentedSE
@Reflective(org.springframework.web.bind.annotation.ExceptionHandlerReflectiveProcessor.class)
public @interface ExceptionHandler
特定のハンドラークラスやハンドラーメソッドで例外を処理するためのアノテーション。
このアノテーションが付けられたハンドラーメソッドは、非常に柔軟な署名を持つことができます。次の型のパラメーターを任意の順序で持つことができます。
- 例外引数: 一般的な例外またはより具体的な例外として宣言されています。これは、アノテーション自体が
value()
を介して例外型を絞り込まない場合のマッピングヒントとしても機能します。伝播されている最上位の例外、またはラッパー例外内のネストされた原因を参照できます。5.3 では、あらゆる原因レベルが公開されていますが、以前は直接的な原因のみが考慮されていました。 - リクエストおよび / またはレスポンスオブジェクト(通常はサーブレット API から)。特定のリクエスト / レスポンス型を選択できます。
ServletRequest
EE/HttpServletRequest
EE。 - セッションオブジェクト: 通常
HttpSession
EE。この型の引数は、対応するセッションの存在を強制します。結果として引数は決してnull
になりません。 特にサーブレット環境では、セッションアクセスはスレッドセーフではない可能性があることに注意してください。複数のリクエストがセッションに同時にアクセスできる場合、"synchronizeOnSession"
フラグを "true" に切り替えることを検討してください。 WebRequest
またはNativeWebRequest
ネイティブサーブレット API に関係なく、汎用のリクエストパラメーターアクセスとリクエスト / セッション属性アクセスを許可します。- 現在のリクエストロケールの
Locale
SE(利用可能な最も具体的なロケールリゾルバー、つまり、サーブレット環境で構成されたLocaleResolver
によって決定されます)。 - リクエストのコンテンツにアクセスするための
InputStream
SE/Reader
SE。これは、サーブレット API によって公開される生の InputStream/ リーダーになります。 - レスポンスのコンテンツを生成するための
OutputStream
SE/Writer
SE。これは、サーブレット API によって公開された生の OutputStream/Writer になります。 - ハンドラーメソッドからモデルマップを返す代わりとしての
Model
。例外固有のビュー用にモデルを準備するのに便利なように、提供されたモデルには通常のモデル属性が事前に設定されておらず、常に空であることに注意してください。
ハンドラーメソッドでは、次の戻り値の型がサポートされています。
ModelAndView
オブジェクト(サーブレット MVC から)。RequestToViewNameTranslator
を介して暗黙的に決定されたビュー名を持つModel
オブジェクト。- モデルを公開するための
Map
SE オブジェクト。ビュー名はRequestToViewNameTranslator
を介して暗黙的に決定されます。 View
オブジェクト。- ビュー名として解釈される
String
SE 値。 @ResponseBody
アノテーション付きメソッド (サーブレットのみ) は、レスポンスコンテンツを設定します。戻り値は、メッセージコンバーターを使用してレスポンスストリームに変換されます。- レスポンスヘッダーとコンテンツを設定するための
HttpEntity<?>
またはResponseEntity<?>
オブジェクト (サーブレットのみ)。ResponseEntity 本文は、メッセージコンバーターを使用して変換され、レスポンスストリームに書き込まれます。 void
メソッドがレスポンス自体を処理する場合(レスポンスコンテンツを直接記述し、その目的のためにServletResponse
EE/HttpServletResponse
EE 型の引数を宣言することにより)、またはビュー名がRequestToViewNameTranslator
によって暗黙的に決定されることになっている場合(レスポンス引数を宣言しない場合)ハンドラーメソッドシグネチャー)。
特定の HTTP エラーステータスについて、ExceptionHandler
アノテーションと @ResponseStatus
を組み合わせることができます。
- 導入:
- 3.0
- 作成者:
- Arjen Poutsma, Juergen Hoeller
- 関連事項:
オプション要素のサマリー
要素の詳細
value
ClassSE<? extends ThrowableSE>[] valueアノテーション付きメソッドによって処理される例外。空の場合、メソッド引数リストにリストされている例外がデフォルトになります。- デフォルト:
- {}