クラス ExceptionHandlerMethodResolver

java.lang.ObjectSE
org.springframework.web.method.annotation.ExceptionHandlerMethodResolver

public class ExceptionHandlerMethodResolver extends ObjectSE
指定されたクラス(そのすべてのスーパークラスを含む)内の @ExceptionHandler メソッドを検出し、クライアントによってリクエストされた指定された ExceptionSE および MediaType を、指定された MethodSE でサポートされる組み合わせに解決できます。

このリゾルバーは、@ExceptionHandler アノテーション属性として宣言された例外情報、またはフォールバックとしてメソッド引数として宣言された例外情報を使用します。次の場合に IllegalStateException インスタンスがスローされます。

  • メソッドの例外情報が見つかりませんでした
  • 無効な MediaType が @ExceptionHandler 属性として宣言されました
  • 複数のハンドラーが同じ例外 + メディア型マッピングを宣言する
導入:
3.1
作成者:
Rossen Stoyanchev, Juergen Hoeller, Sam Brannen, Brian Clozel
  • コンストラクターの詳細

    • ExceptionHandlerMethodResolver

      public ExceptionHandlerMethodResolver(ClassSE<?> handlerType)
      指定された型の ExceptionHandler メソッドを見つけるコンストラクター。
      パラメーター:
      handlerType - イントロスペクトする型
      例外:
      IllegalStateExceptionSE - 例外マッピング宣言が無効またはあいまいな場合
  • メソッドの詳細

    • hasExceptionMappings

      public boolean hasExceptionMappings()
      含まれている型に例外マッピングがあるかどうか。
    • resolveMethod

      @Nullable public MethodSE resolveMethod(ExceptionSE exception)
      指定された例外を処理する MethodSE を見つけます。

      複数の一致が見つかった場合は ExceptionDepthComparator を使用します。

      パラメーター:
      exception - 例外
      戻り値:
      例外を処理するメソッド、または何も見つからない場合は null 
    • resolveMethodByThrowable

      @Nullable public MethodSE resolveMethodByThrowable(ThrowableSE exception)
      指定された Throwable を処理する MethodSE を見つけます。

      複数の一致が見つかった場合は ExceptionDepthComparator を使用します。

      パラメーター:
      exception - 例外
      戻り値:
      例外を処理するメソッド、または何も見つからない場合は null 
      導入:
      5.0
    • resolveExceptionMapping

      @Nullable public ExceptionHandlerMappingInfo resolveExceptionMapping(ThrowableSE exception, MediaType mediaType)
      リクエストされた MediaType に対して指定された Throwable を処理する MethodSE を検索します。

      複数の一致が見つかった場合は、ExceptionDepthComparatorMediaType.isMoreSpecific(MimeType) を使用します。

      パラメーター:
      exception - 例外
      mediaType - HTTP クライアントがリクエストしたメディア型
      戻り値:
      例外を処理するメソッド、または何も見つからない場合は null 
      導入:
      6.2
    • resolveMethodByExceptionType

      @Nullable public MethodSE resolveMethodByExceptionType(ClassSE<? extends ThrowableSE> exceptionType)
      指定された例外型を処理する MethodSE を検索します。これは、ExceptionSE インスタンスが利用できない場合に役立ちます (たとえば、ツールの場合)。

      複数の一致が見つかった場合は ExceptionDepthComparator を使用します。

      パラメーター:
      exceptionType - 例外型
      戻り値:
      例外を処理するメソッド、または何も見つからない場合は null 
    • resolveExceptionMappingByExceptionType

      @Nullable public ExceptionHandlerMappingInfo resolveExceptionMappingByExceptionType(ClassSE<? extends ThrowableSE> exceptionType, MediaType mediaType)
      指定された例外型とメディア型を処理する MethodSE を検索します。これは、ExceptionSE インスタンスが利用できない場合に役立ちます (たとえば、ツールの場合)。
      パラメーター:
      exceptionType - 例外型
      mediaType - HTTP クライアントがリクエストしたメディア型
      戻り値:
      例外を処理するメソッド、または何も見つからない場合は null