クラス ExceptionHandlerExceptionResolver

実装されているすべてのインターフェース:
Aware, InitializingBean, ApplicationContextAware, Ordered, HandlerExceptionResolver

public class ExceptionHandlerExceptionResolver extends AbstractHandlerMethodExceptionResolver implements ApplicationContextAware, InitializingBean
@ExceptionHandler メソッドにより例外を解決する AbstractHandlerMethodExceptionResolver

setCustomArgumentResolvers(List) および setCustomReturnValueHandlers(List) を介して、カスタム引数および戻り値型のサポートを追加できます。または、すべての引数と戻り値の型を再設定するには、setArgumentResolvers(List)setReturnValueHandlers(List) を使用します。

導入:
3.1
作成者:
Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze, Brian Clozel
  • コンストラクターの詳細

    • ExceptionHandlerExceptionResolver

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

    • setCustomArgumentResolvers

      public void setCustomArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers)
      カスタム引数型のリゾルバーを提供します。カスタムリゾルバーは、組み込みリゾルバーの後にオーダーされます。引数解決の組み込みサポートをオーバーライドするには、代わりに setArgumentResolvers(List) を使用します。
    • getCustomArgumentResolvers

      public @Nullable ListSE<HandlerMethodArgumentResolver> getCustomArgumentResolvers()
      カスタム引数リゾルバー、または null を返します。
    • setArgumentResolvers

      public void setArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers)
      サポートされている引数型の完全なリストを構成して、デフォルトでは構成されないリゾルバーをオーバーライドします。
    • getArgumentResolvers

      public @Nullable HandlerMethodArgumentResolverComposite getArgumentResolvers()
      設定済みの引数リゾルバーを返します。afterPropertiesSet() を介してまだ初期化されていない場合は、null を返します。
    • setCustomReturnValueHandlers

      public void setCustomReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers)
      カスタム戻り値型のハンドラーを提供します。カスタムハンドラーは、組み込みハンドラーの後にオーダーされます。戻り値の処理の組み込みサポートをオーバーライドするには、setReturnValueHandlers(List) を使用します。
    • getCustomReturnValueHandlers

      public @Nullable ListSE<HandlerMethodReturnValueHandler> getCustomReturnValueHandlers()
      カスタム戻り値ハンドラー、または null を返します。
    • setReturnValueHandlers

      public void setReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers)
      サポートされている戻り値の型の完全なリストを構成し、そうでなければデフォルトで構成されるハンドラーをオーバーライドします。
    • getReturnValueHandlers

      public @Nullable HandlerMethodReturnValueHandlerComposite getReturnValueHandlers()
      構成済みのハンドラー、または afterPropertiesSet() を介してまだ初期化されていない場合は null を返します。
    • setMessageConverters

      public void setMessageConverters(ListSE<HttpMessageConverter<?>> messageConverters)
      使用するメッセージ本文コンバーターを設定します。

      これらのコンバーターは、HTTP リクエストとレスポンスの変換に使用されます。

    • getMessageConverters

      public ListSE<HttpMessageConverter<?>> getMessageConverters()
      構成されたメッセージ本文コンバーターを返します。
    • setContentNegotiationManager

      public void setContentNegotiationManager(ContentNegotiationManager contentNegotiationManager)
      リクエストされたメディア型を判別するために使用する ContentNegotiationManager を設定します。設定されていない場合、デフォルトのコンストラクターが使用されます。
    • getContentNegotiationManager

      public ContentNegotiationManager getContentNegotiationManager()
      設定された ContentNegotiationManager を返します。
    • setResponseBodyAdvice

      public void setResponseBodyAdvice(@Nullable ListSE<ResponseBodyAdvice<?>> responseBodyAdvice)
      @ResponseBody アノテーションが付けられたコントローラーメソッドの実行後、または ResponseEntity を返した後、選択された HttpMessageConverter でレスポンスにボディが書き込まれる前に呼び出される 1 つ以上のコンポーネントを追加します。
    • setErrorResponseInterceptors

      public void setErrorResponseInterceptors(ListSE<ErrorResponse.Interceptor> interceptors)
      RFC 9457 ProblemDetail エラーレスポンスをレンダリングするときに適用する ErrorResponse.Interceptor のリストを構成します。
      パラメーター:
      interceptors - 使用するハンドラー
      導入:
      6.2
    • getErrorResponseInterceptors

      public ListSE<ErrorResponse.Interceptor> getErrorResponseInterceptors()
      導入:
      6.2
    • setApplicationContext

      public void setApplicationContext(@Nullable ApplicationContext applicationContext)
      インターフェースからコピーされた説明: ApplicationContextAware
      このオブジェクトが実行される ApplicationContext を設定します。通常、この呼び出しはオブジェクトの初期化に使用されます。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(ResourceLoader)ApplicationEventPublisherAware.setApplicationEventPublisher(ApplicationEventPublisher) および MessageSourceAware の後に呼び出されます(該当する場合)。

      次で指定:
      インターフェース ApplicationContextAwaresetApplicationContext 
      パラメーター:
      applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト
      関連事項:
    • getApplicationContext

      public @Nullable ApplicationContext getApplicationContext()
    • afterPropertiesSet

      public void afterPropertiesSet()
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • getExceptionHandlerAdviceCache

      public MapSE<ControllerAdviceBean, ExceptionHandlerMethodResolver> getExceptionHandlerAdviceCache()
      ApplicationContext で検出された @ControllerAdvice Bean を含む変更不可能なマップを返します。Bean が afterPropertiesSet() で初期化される前にメソッドが呼び出されると、返されるマップは空になります。
    • getDefaultArgumentResolvers

      protected ListSE<HandlerMethodArgumentResolver> getDefaultArgumentResolvers()
      setCustomArgumentResolvers(List) を介して提供される組み込みリゾルバーとカスタムリゾルバーを含む、使用する引数リゾルバーのリストを返します。
    • getDefaultReturnValueHandlers

      protected ListSE<HandlerMethodReturnValueHandler> getDefaultReturnValueHandlers()
      setReturnValueHandlers(List) を介して提供される組み込みおよびカスタムハンドラーを含む、使用する戻り値ハンドラーのリストを返します。
    • hasGlobalExceptionHandlers

      protected boolean hasGlobalExceptionHandlers()
      クラスからコピーされた説明: AbstractHandlerMethodExceptionResolver
      このリゾルバーにグローバル例外ハンドラーがあるかどうか。たとえば、例外を発生させた HandlerMethod と同じクラスで宣言されていないため、任意のハンドラーに適用できます。
      オーバーライド:
      クラス AbstractHandlerMethodExceptionResolverhasGlobalExceptionHandlers 
    • shouldApplyTo

      protected boolean shouldApplyTo(jakarta.servlet.http.HttpServletRequest request, @Nullable ObjectSE handler)
      クラスからコピーされた説明: AbstractHandlerMethodExceptionResolver
      ハンドラーが HandlerMethod であるか、リゾルバーにグローバル例外ハンドラーがあるかどうかを確認し、必要に応じて HandlerMethod の Bean を渡して #shouldApplyTo の基本クラス実装に委譲します。それ以外の場合は、false を返します。
      オーバーライド:
      クラス AbstractHandlerMethodExceptionResolvershouldApplyTo 
      パラメーター:
      request - 現在の HTTP リクエスト
      handler - 実行されたハンドラー、または例外時に何も選択されなかった場合は null (たとえば、マルチパート解決が失敗した場合)
      戻り値:
      これが解決されて、指定されたリクエストとハンドラーの例外の解決に進むかどうか
      関連事項:
    • doResolveHandlerMethodException

      protected @Nullable ModelAndView doResolveHandlerMethodException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, @Nullable HandlerMethod handlerMethod, ExceptionSE exception)
      @ExceptionHandler メソッドを見つけて呼び出し、発生した例外を処理します。
      次で指定:
      クラス AbstractHandlerMethodExceptionResolverdoResolveHandlerMethodException 
      パラメーター:
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
      handlerMethod - 実行されたハンドラーメソッド、または例外時に何も選択されなかった場合は null (たとえば、マルチパート解決が失敗した場合)
      exception - ハンドラーの実行中にスローされた例外
      戻り値:
      転送先の対応する ModelAndView、またはデフォルト処理の場合は null 
    • getExceptionHandlerMethod

      protected @Nullable ServletInvocableHandlerMethod getExceptionHandlerMethod(@Nullable HandlerMethod handlerMethod, ExceptionSE exception, ServletWebRequest webRequest)
      指定された例外の @ExceptionHandler メソッドを見つけます。デフォルトの実装では、最初にコントローラーのクラス階層でメソッドを検索し、見つからない場合は、@ControllerAdvice Spring 管理 Bean が検出されたと仮定して、追加の @ExceptionHandler メソッドの検索を続けます。
      パラメーター:
      handlerMethod - 例外が発生したメソッド (null の場合があります)
      exception - 発生した例外
      webRequest - ハンドラーエラーの原因となった元の Web リクエスト
      戻り値:
      例外を処理するメソッド、または存在しない場合は null