クラス AbstractHandlerExceptionResolver
- 実装されたすべてのインターフェース:
Ordered
,HandlerExceptionResolver
- 既知の直属サブクラス
AbstractHandlerMethodExceptionResolver
、DefaultHandlerExceptionResolver
、ResponseStatusExceptionResolver
、SimpleMappingExceptionResolver
HandlerExceptionResolver
実装の抽象基本クラス。 リゾルバーが適用されるマッピングされたハンドラーとハンドラークラスをサポートし、Ordered
インターフェースを実装します。
- 導入:
- 3.0
- 作成者:
- Arjen Poutsma, Juergen Hoeller, Sam Brannen
フィールドサマリー
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明void
addMappedHandlerClass
(ClassSE<?> mappedHandlerClass) protected StringSE
buildLogMessage
(ExceptionSE ex, HttpServletRequestEE request) 特定のリクエストの処理中に発生した特定の例外のログメッセージを作成します。protected abstract ModelAndView
doResolveException
(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表すModelAndView
を返します。protected ClassSE<?>[]
configured
マップされたハンドラークラスを返します。int
getOrder()
このオブジェクトの順序値を取得します。protected boolean
setMappedHandlers(Set)
、setMappedHandlerClasses(Class[])
、またはsetMappedHandlerPredicate(Predicate)
経由で登録されたハンドラーマッピングがあるかどうか。protected void
logException
(ExceptionSE ex, HttpServletRequestEE request) "warnLogCategory"
プロパティを介して警告ログが有効になっている場合、警告レベルで特定の例外をログに記録します。protected void
prepareResponse
(ExceptionSE ex, HttpServletResponseEE response) 例外的なケースの対応を準備します。protected void
preventCaching
(HttpServletResponseEE response) 対応する HTTPCache-Control: no-store
ヘッダーを設定することにより、レスポンスがキャッシュされないようにします。resolveException
(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) このリゾルバーが適用されることになっているかどうかを確認します(つまりvoid
setMappedHandlerClasses
(ClassSE<?>... mappedHandlerClasses) この例外リゾルバーが適用されるクラスのセットを指定します。void
setMappedHandlerPredicate
(PredicateSE<ObjectSE> predicate) Predicate
を使用して、この例外リゾルバーがどのハンドラーに適用されるかを決定します。これには、リクエストがマップされなかった場合のハンドラーがnull
である場合も含まれます。void
setMappedHandlers
(SetSE<?> mappedHandlers) この例外リゾルバーが適用されるハンドラーのセットを指定します。void
setOrder
(int order) void
setPreventResponseCaching
(boolean preventResponseCaching) この例外リゾルバーによって解決されたビューの HTTP レスポンスキャッシュを防止するかどうかを指定します。void
setWarnLogCategory
(StringSE loggerName) 警告ログのログカテゴリを設定します。protected boolean
shouldApplyTo
(HttpServletRequestEE request, ObjectSE handler) このリゾルバーが特定のハンドラーに適用されることになっているかどうかを確認します。
フィールドの詳細
logger
サブクラスで利用可能なロガー。
コンストラクターの詳細
AbstractHandlerExceptionResolver
public AbstractHandlerExceptionResolver()
メソッドの詳細
setOrder
public void setOrder(int order) getOrder
public int getOrder()インターフェースからコピーされた説明:Ordered
このオブジェクトの順序値を取得します。値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット
load-on-startup
の値に多少似ています)。同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
setMappedHandlerPredicate
Predicate
を使用して、この例外リゾルバーがどのハンドラーに適用されるかを決定します。これには、リクエストがマップされなかった場合のハンドラーがnull
である場合も含まれます。ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。
- 導入:
- 6.1.2
setMappedHandlers
この例外リゾルバーが適用されるハンドラーのセットを指定します。ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。
setMappedHandlerClasses
この例外リゾルバーが適用されるクラスのセットを指定します。リゾルバーは、指定された型のハンドラーにのみ適用されます。指定された型は、ハンドラーのインターフェースまたはスーパークラスである場合もあります。ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。
addMappedHandlerClass
- 導入:
- 6.1
getMappedHandlerClasses
configured
マップされたハンドラークラスを返します。setWarnLogCategory
警告ログのログカテゴリを設定します。名前は Commons Logging を介して基盤となるロガー実装に渡され、ロガーの構成に従ってログカテゴリとして解釈されます。null
または空の文字列が渡されると、警告ログはオフになります。デフォルトでは警告ロギングはありませんが、
DefaultHandlerExceptionResolver
などのサブクラスはそのデフォルトを変更できます。この設定を指定して、特定のカテゴリへの警告ログを有効にします。または、カスタムロギングのlogException(java.lang.Exception, jakarta.servlet.http.HttpServletRequest)
メソッドをオーバーライドします。setPreventResponseCaching
public void setPreventResponseCaching(boolean preventResponseCaching) この例外リゾルバーによって解決されたビューの HTTP レスポンスキャッシュを防止するかどうかを指定します。デフォルトは
false
です。レスポンスキャッシュを抑制する HTTP レスポンスヘッダーを自動的に生成するには、これをtrue
に切り替えます。resolveException
@Nullable public ModelAndView resolveException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) このリゾルバーが適用されることになっているかどうかを確認し(つまり、提供されたハンドラーが構成済みのハンドラーまたはハンドラークラスのいずれかに一致する場合)、doResolveException(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, java.lang.Object, java.lang.Exception)
テンプレートメソッドに委譲します。- 次で指定:
- インターフェース
HandlerExceptionResolver
のresolveException
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスhandler
- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull
(たとえば、マルチパート解決が失敗した場合)ex
- ハンドラーの実行中にスローされた例外- 戻り値:
- 転送先の対応する
ModelAndView
、または解決チェーンでのデフォルト処理の場合はnull
shouldApplyTo
このリゾルバーが特定のハンドラーに適用されることになっているかどうかを確認します。デフォルトの実装では、構成されている handlerPredicate ハンドラーとハンドラークラス (存在する場合) に対してチェックが行われます。
- パラメーター:
request
- 現在の HTTP リクエストhandler
- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull
(たとえば、マルチパート解決が失敗した場合)- 戻り値:
- これが解決されて、指定されたリクエストとハンドラーの例外の解決に進むかどうか
- 関連事項:
hasHandlerMappings
protected boolean hasHandlerMappings()setMappedHandlers(Set)
、setMappedHandlerClasses(Class[])
、またはsetMappedHandlerPredicate(Predicate)
経由で登録されたハンドラーマッピングがあるかどうか。- 導入:
- 5.3
logException
"warnLogCategory"
プロパティを介して警告ログが有効になっている場合、警告レベルで特定の例外をログに記録します。ログに記録する具体的なメッセージを判別するために、
buildLogMessage(java.lang.Exception, jakarta.servlet.http.HttpServletRequest)
を呼び出します。- パラメーター:
ex
- ハンドラーの実行中にスローされた例外request
- 現在の HTTP リクエスト (メタデータの取得に役立ちます)- 関連事項:
buildLogMessage
特定のリクエストの処理中に発生した特定の例外のログメッセージを作成します。- パラメーター:
ex
- ハンドラーの実行中にスローされた例外request
- 現在の HTTP リクエスト (メタデータの取得に役立ちます)- 戻り値:
- 使用するログメッセージ
prepareResponse
例外的なケースの対応を準備します。"preventResponseCaching"
プロパティが "true" に設定されている場合、デフォルトの実装ではレスポンスがキャッシュされません。- パラメーター:
ex
- ハンドラーの実行中にスローされた例外response
- 現在の HTTP レスポンス- 関連事項:
preventCaching
対応する HTTPCache-Control: no-store
ヘッダーを設定することにより、レスポンスがキャッシュされないようにします。- パラメーター:
response
- 現在の HTTP レスポンス
doResolveException
@Nullable protected abstract ModelAndView doResolveException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表すModelAndView
を返します。特定の例外チェックを適用するために、サブクラスでオーバーライドできます。このテンプレートメソッドは、このリゾルバーが適用されるかどうか ( "mappedHandlers" など) を確認した後に呼び出されるため、実装では実際の例外処理をそのまま続行できます。
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスhandler
- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull
(たとえば、マルチパート解決が失敗した場合)ex
- ハンドラーの実行中にスローされた例外- 戻り値:
- 転送先の対応する
ModelAndView
、または解決チェーンでのデフォルト処理の場合はnull