クラス AbstractHandlerExceptionResolver

java.lang.ObjectSE
org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver
実装されたすべてのインターフェース:
OrderedHandlerExceptionResolver
既知の直属サブクラス
AbstractHandlerMethodExceptionResolverDefaultHandlerExceptionResolverResponseStatusExceptionResolverSimpleMappingExceptionResolver

public abstract class AbstractHandlerExceptionResolver extends ObjectSE implements HandlerExceptionResolver, Ordered
HandlerExceptionResolver 実装の抽象基本クラス。

リゾルバーが適用されるマッピングされたハンドラーハンドラークラスをサポートし、Ordered インターフェースを実装します。

導入:
3.0
作成者:
Arjen Poutsma, Juergen Hoeller, Sam Brannen
  • フィールドの詳細

    • logger

      protected final Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • AbstractHandlerExceptionResolver

      public AbstractHandlerExceptionResolver()
  • メソッドの詳細

    • setOrder

      public void setOrder(int order)
    • getOrder

      public int getOrder()
      インターフェースからコピーされた説明: Ordered
      このオブジェクトの順序値を取得します。

      値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット load-on-startup の値に多少似ています)。

      同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。

      次で指定:
      インターフェース OrderedgetOrder 
      戻り値:
      オーダー額
      関連事項:
    • setMappedHandlerPredicate

      public void setMappedHandlerPredicate(PredicateSE<ObjectSE> predicate)
      Predicate を使用して、この例外リゾルバーがどのハンドラーに適用されるかを決定します。これには、リクエストがマップされなかった場合のハンドラーが null である場合も含まれます。

      ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。

      導入:
      6.1.2
    • setMappedHandlers

      public void setMappedHandlers(SetSE<?> mappedHandlers)
      この例外リゾルバーが適用されるハンドラーのセットを指定します。

      ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。

      関連事項:
    • setMappedHandlerClasses

      public void setMappedHandlerClasses(ClassSE<?>... mappedHandlerClasses)
      この例外リゾルバーが適用されるクラスのセットを指定します。リゾルバーは、指定された型のハンドラーにのみ適用されます。指定された型は、ハンドラーのインターフェースまたはスーパークラスである場合もあります。

      ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。

      関連事項:
    • addMappedHandlerClass

      public void addMappedHandlerClass(ClassSE<?> mappedHandlerClass)
      導入:
      6.1
    • getMappedHandlerClasses

      @Nullable protected ClassSE<?>[] getMappedHandlerClasses()
      configured マップされたハンドラークラスを返します。
    • setWarnLogCategory

      public void setWarnLogCategory(StringSE loggerName)
      警告ログのログカテゴリを設定します。名前は 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) テンプレートメソッドに委譲します。
      次で指定:
      インターフェース HandlerExceptionResolverresolveException 
      パラメーター:
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
      handler - 実行されたハンドラー、または例外時に何も選択されなかった場合は null (たとえば、マルチパート解決が失敗した場合)
      ex - ハンドラーの実行中にスローされた例外
      戻り値:
      転送先の対応する ModelAndView、または解決チェーンでのデフォルト処理の場合は null 
    • shouldApplyTo

      protected boolean shouldApplyTo(HttpServletRequestEE request, @Nullable ObjectSE handler)
      このリゾルバーが特定のハンドラーに適用されることになっているかどうかを確認します。

      デフォルトの実装は、設定された handlerPredicate ハンドラーおよびハンドラークラス (存在する場合) を照合します。

      パラメーター:
      request - 現在の HTTP リクエスト
      handler - 実行されたハンドラー、または例外時に何も選択されなかった場合は null (たとえば、マルチパート解決が失敗した場合)
      戻り値:
      これが解決されて、指定されたリクエストとハンドラーの例外の解決に進むかどうか
      関連事項:
    • hasHandlerMappings

      protected boolean hasHandlerMappings()
      setMappedHandlers(Set)setMappedHandlerClasses(Class[])、または setMappedHandlerPredicate(Predicate) 経由で登録されたハンドラーマッピングがあるかどうか。
      導入:
      5.3
    • logException

      protected void logException(ExceptionSE ex, HttpServletRequestEE request)
      "warnLogCategory" プロパティを介して警告ログが有効になっている場合、警告レベルで特定の例外をログに記録します。

      ログに記録する具体的なメッセージを判別するために、buildLogMessage(java.lang.Exception, jakarta.servlet.http.HttpServletRequest) を呼び出します。

      パラメーター:
      ex - ハンドラーの実行中にスローされた例外
      request - 現在の HTTP リクエスト (メタデータの取得に役立ちます)
      関連事項:
    • buildLogMessage

      protected StringSE buildLogMessage(ExceptionSE ex, HttpServletRequestEE request)
      特定のリクエストの処理中に発生した特定の例外のログメッセージを作成します。
      パラメーター:
      ex - ハンドラーの実行中にスローされた例外
      request - 現在の HTTP リクエスト (メタデータの取得に役立ちます)
      戻り値:
      使用するログメッセージ
    • prepareResponse

      protected void prepareResponse(ExceptionSE ex, HttpServletResponseEE response)
      例外的なケースの対応を準備します。

      "preventResponseCaching" プロパティが "true" に設定されている場合、デフォルトの実装ではレスポンスがキャッシュされません。

      パラメーター:
      ex - ハンドラーの実行中にスローされた例外
      response - 現在の HTTP レスポンス
      関連事項:
    • preventCaching

      protected void preventCaching(HttpServletResponseEE response)
      対応する HTTP Cache-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