クラス ExceptionHandlerExceptionResolver
- 実装されたすべてのインターフェース:
Aware
、InitializingBean
、ApplicationContextAware
、Ordered
、HandlerExceptionResolver
@ExceptionHandler
メソッドにより例外を解決する AbstractHandlerMethodExceptionResolver
。setCustomArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>)
および setCustomReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler>)
を介して、カスタム引数および戻り値型のサポートを追加できます。または、すべての引数と戻り値の型を再設定するには、setArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>)
と setReturnValueHandlers(List)
を使用します。
- 導入:
- 3.1
- 作成者:
- Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze, Brian Clozel
フィールドのサマリー
クラス org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver から継承されたフィールド
logger
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void
protected ModelAndView
doResolveHandlerMethodException
(HttpServletRequestEE request, HttpServletResponseEE response, HandlerMethod handlerMethod, ExceptionSE exception) @ExceptionHandler
メソッドを見つけて呼び出し、発生した例外を処理します。設定済みの引数リゾルバーを返します。afterPropertiesSet()
を介してまだ初期化されていない場合は、null
を返します。設定されたContentNegotiationManager
を返します。カスタム引数リゾルバー、またはnull
を返します。カスタム戻り値ハンドラー、またはnull
を返します。protected ListSE<HandlerMethodArgumentResolver>
setCustomArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>)
を介して提供される組み込みリゾルバーとカスタムリゾルバーを含む、使用する引数リゾルバーのリストを返します。protected ListSE<HandlerMethodReturnValueHandler>
setReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler>)
を介して提供される組み込みおよびカスタムハンドラーを含む、使用する戻り値ハンドラーのリストを返します。ApplicationContext で検出された@ControllerAdvice
Bean を含む変更不可能なマップを返します。protected ServletInvocableHandlerMethod
getExceptionHandlerMethod
(HandlerMethod handlerMethod, ExceptionSE exception, ServletWebRequest webRequest) 指定された例外の@ExceptionHandler
メソッドを見つけます。構成されたメッセージ本文コンバーターを返します。構成済みのハンドラー、またはafterPropertiesSet()
を介してまだ初期化されていない場合はnull
を返します。protected boolean
このリゾルバーにグローバル例外ハンドラーがあるかどうか。たとえば、例外を発生させたHandlerMethod
と同じクラスで宣言されていないため、任意のハンドラーに適用できます。void
setApplicationContext
(ApplicationContext applicationContext) このオブジェクトが実行される ApplicationContext を設定します。void
setArgumentResolvers
(ListSE<HandlerMethodArgumentResolver> argumentResolvers) サポートされている引数型の完全なリストを構成して、デフォルトでは構成されないリゾルバーをオーバーライドします。void
setContentNegotiationManager
(ContentNegotiationManager contentNegotiationManager) リクエストされたメディア型を判別するために使用するContentNegotiationManager
を設定します。void
setCustomArgumentResolvers
(ListSE<HandlerMethodArgumentResolver> argumentResolvers) カスタム引数型のリゾルバーを提供します。void
setCustomReturnValueHandlers
(ListSE<HandlerMethodReturnValueHandler> returnValueHandlers) カスタム戻り値型のハンドラーを提供します。void
setErrorResponseInterceptors
(ListSE<ErrorResponse.Interceptor> interceptors) RFC 9457ProblemDetail
エラーレスポンスをレンダリングするときに適用するErrorResponse.Interceptor
のリストを構成します。void
setMessageConverters
(ListSE<HttpMessageConverter<?>> messageConverters) 使用するメッセージ本文コンバーターを設定します。void
setResponseBodyAdvice
(ListSE<ResponseBodyAdvice<?>> responseBodyAdvice) @ResponseBody
アノテーションが付けられたコントローラーメソッドの実行後、またはResponseEntity
を返した後、選択されたHttpMessageConverter
でレスポンスにボディが書き込まれる前に呼び出される 1 つ以上のコンポーネントを追加します。void
setReturnValueHandlers
(ListSE<HandlerMethodReturnValueHandler> returnValueHandlers) サポートされている戻り値の型の完全なリストを構成し、そうでなければデフォルトで構成されるハンドラーをオーバーライドします。protected boolean
shouldApplyTo
(HttpServletRequestEE request, ObjectSE handler) ハンドラーがHandlerMethod
であるか、リゾルバーにグローバル例外ハンドラーがあるかどうかを確認し、必要に応じてHandlerMethod
の Bean を渡して#shouldApplyTo
の基本クラス実装に委譲します。クラス org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver から継承されたメソッド
doResolveException
クラス org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver から継承されたメソッド
addMappedHandlerClass, buildLogMessage, getMappedHandlerClasses, getOrder, hasHandlerMappings, logException, prepareResponse, preventCaching, resolveException, setMappedHandlerClasses, setMappedHandlerPredicate, setMappedHandlers, setOrder, setPreventResponseCaching, setWarnLogCategory
コンストラクターの詳細
ExceptionHandlerExceptionResolver
public ExceptionHandlerExceptionResolver()
メソッドの詳細
setCustomArgumentResolvers
public void setCustomArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers) カスタム引数型のリゾルバーを提供します。カスタムリゾルバーは、組み込みリゾルバーの後にオーダーされます。引数解決の組み込みサポートをオーバーライドするには、代わりにsetArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>)
を使用します。getCustomArgumentResolvers
カスタム引数リゾルバー、またはnull
を返します。setArgumentResolvers
サポートされている引数型の完全なリストを構成して、デフォルトでは構成されないリゾルバーをオーバーライドします。getArgumentResolvers
設定済みの引数リゾルバーを返します。afterPropertiesSet()
を介してまだ初期化されていない場合は、null
を返します。setCustomReturnValueHandlers
public void setCustomReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers) カスタム戻り値型のハンドラーを提供します。カスタムハンドラーは、組み込みハンドラーの後にオーダーされます。戻り値の処理の組み込みサポートをオーバーライドするには、setReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler>)
を使用します。getCustomReturnValueHandlers
カスタム戻り値ハンドラー、またはnull
を返します。setReturnValueHandlers
public void setReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers) サポートされている戻り値の型の完全なリストを構成し、そうでなければデフォルトで構成されるハンドラーをオーバーライドします。getReturnValueHandlers
構成済みのハンドラー、またはafterPropertiesSet()
を介してまだ初期化されていない場合はnull
を返します。setMessageConverters
使用するメッセージ本文コンバーターを設定します。これらのコンバーターは、HTTP リクエストとレスポンスの変換に使用されます。
getMessageConverters
構成されたメッセージ本文コンバーターを返します。setContentNegotiationManager
リクエストされたメディア型を判別するために使用するContentNegotiationManager
を設定します。設定されていない場合、デフォルトのコンストラクターが使用されます。getContentNegotiationManager
設定されたContentNegotiationManager
を返します。setResponseBodyAdvice
@ResponseBody
アノテーションが付けられたコントローラーメソッドの実行後、またはResponseEntity
を返した後、選択されたHttpMessageConverter
でレスポンスにボディが書き込まれる前に呼び出される 1 つ以上のコンポーネントを追加します。setErrorResponseInterceptors
RFC 9457ProblemDetail
エラーレスポンスをレンダリングするときに適用するErrorResponse.Interceptor
のリストを構成します。- パラメーター:
interceptors
- 使用するハンドラー- 導入:
- 6.2
getErrorResponseInterceptors
- 導入:
- 6.2
setApplicationContext
インターフェースからコピーされた説明:ApplicationContextAware
このオブジェクトが実行される ApplicationContext を設定します。通常、この呼び出しはオブジェクトの初期化に使用されます。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)
、ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)
およびMessageSourceAware
の後に呼び出されます(該当する場合)。- 次で指定:
- インターフェース
ApplicationContextAware
のsetApplicationContext
- パラメーター:
applicationContext
- このオブジェクトによって使用される ApplicationContext オブジェクト- 関連事項:
getApplicationContext
afterPropertiesSet
public void afterPropertiesSet()インターフェースからコピーされた説明:InitializingBean
すべての Bean プロパティを設定し、BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
getExceptionHandlerAdviceCache
ApplicationContext で検出された@ControllerAdvice
Bean を含む変更不可能なマップを返します。Bean がafterPropertiesSet()
で初期化される前にメソッドが呼び出されると、返されるマップは空になります。getDefaultArgumentResolvers
setCustomArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>)
を介して提供される組み込みリゾルバーとカスタムリゾルバーを含む、使用する引数リゾルバーのリストを返します。getDefaultReturnValueHandlers
setReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler>)
を介して提供される組み込みおよびカスタムハンドラーを含む、使用する戻り値ハンドラーのリストを返します。hasGlobalExceptionHandlers
protected boolean hasGlobalExceptionHandlers()クラスからコピーされた説明:AbstractHandlerMethodExceptionResolver
このリゾルバーにグローバル例外ハンドラーがあるかどうか。たとえば、例外を発生させたHandlerMethod
と同じクラスで宣言されていないため、任意のハンドラーに適用できます。- オーバーライド:
- クラス
AbstractHandlerMethodExceptionResolver
のhasGlobalExceptionHandlers
shouldApplyTo
クラスからコピーされた説明:AbstractHandlerMethodExceptionResolver
ハンドラーがHandlerMethod
であるか、リゾルバーにグローバル例外ハンドラーがあるかどうかを確認し、必要に応じてHandlerMethod
の Bean を渡して#shouldApplyTo
の基本クラス実装に委譲します。それ以外の場合は、false
を返します。- オーバーライド:
- クラス
AbstractHandlerMethodExceptionResolver
のshouldApplyTo
- パラメーター:
request
- 現在の HTTP リクエストhandler
- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull
(たとえば、マルチパート解決が失敗した場合)- 戻り値:
- これが解決されて、指定されたリクエストとハンドラーの例外の解決に進むかどうか
- 関連事項:
doResolveHandlerMethodException
@Nullable protected ModelAndView doResolveHandlerMethodException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable HandlerMethod handlerMethod, ExceptionSE exception) @ExceptionHandler
メソッドを見つけて呼び出し、発生した例外を処理します。- 次で指定:
- クラス
AbstractHandlerMethodExceptionResolver
のdoResolveHandlerMethodException
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスhandlerMethod
- 実行されたハンドラーメソッド、または例外時に何も選択されなかった場合はnull
(たとえば、マルチパート解決が失敗した場合)exception
- ハンドラーの実行中にスローされた例外- 戻り値:
- 転送先の対応する ModelAndView、またはデフォルト処理の場合は
null
getExceptionHandlerMethod
@Nullable protected ServletInvocableHandlerMethod getExceptionHandlerMethod(@Nullable HandlerMethod handlerMethod, ExceptionSE exception, ServletWebRequest webRequest) 指定された例外の@ExceptionHandler
メソッドを見つけます。デフォルトの実装では、最初にコントローラーのクラス階層でメソッドを検索し、見つからない場合は、@ControllerAdvice Spring 管理 Bean が検出されたと仮定して、追加の@ExceptionHandler
メソッドの検索を続けます。- パラメーター:
handlerMethod
- 例外が発生したメソッド (null
の場合があります)exception
- 発生した例外webRequest
- ハンドラーエラーの原因となった元の Web リクエスト- 戻り値:
- 例外を処理するメソッド、または存在しない場合は
null