クラス ExceptionHandlerExceptionResolver
java.lang.ObjectSE
org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver
org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver
org.springframework.web.servlet.mvc.method.annotation.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
フィールドのサマリー
クラス AbstractHandlerExceptionResolver から継承されたフィールド
loggerインターフェース Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidprotected @Nullable ModelAndViewdoResolveHandlerMethodException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, @Nullable HandlerMethod handlerMethod, ExceptionSE exception) @ExceptionHandlerメソッドを見つけて呼び出し、発生した例外を処理します。設定済みの引数リゾルバーを返します。afterPropertiesSet()を介してまだ初期化されていない場合は、nullを返します。設定されたContentNegotiationManagerを返します。カスタム引数リゾルバー、またはnullを返します。カスタム戻り値ハンドラー、またはnullを返します。protected ListSE<HandlerMethodArgumentResolver> setCustomArgumentResolvers(List)を介して提供される組み込みリゾルバーとカスタムリゾルバーを含む、使用する引数リゾルバーのリストを返します。protected ListSE<HandlerMethodReturnValueHandler> setReturnValueHandlers(List)を介して提供される組み込みおよびカスタムハンドラーを含む、使用する戻り値ハンドラーのリストを返します。ApplicationContext で検出された@ControllerAdviceBean を含む変更不可能なマップを返します。protected @Nullable ServletInvocableHandlerMethodgetExceptionHandlerMethod(@Nullable HandlerMethod handlerMethod, ExceptionSE exception, ServletWebRequest webRequest) 指定された例外の@ExceptionHandlerメソッドを見つけます。構成されたメッセージ本文コンバーターを返します。構成済みのハンドラー、またはafterPropertiesSet()を介してまだ初期化されていない場合はnullを返します。protected booleanこのリゾルバーにグローバル例外ハンドラーがあるかどうか。たとえば、例外を発生させたHandlerMethodと同じクラスで宣言されていないため、任意のハンドラーに適用できます。voidsetApplicationContext(@Nullable ApplicationContext applicationContext) このオブジェクトが実行される ApplicationContext を設定します。voidsetArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers) サポートされている引数型の完全なリストを構成して、デフォルトでは構成されないリゾルバーをオーバーライドします。voidsetContentNegotiationManager(ContentNegotiationManager contentNegotiationManager) リクエストされたメディア型を判別するために使用するContentNegotiationManagerを設定します。voidsetCustomArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers) カスタム引数型のリゾルバーを提供します。voidsetCustomReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers) カスタム戻り値型のハンドラーを提供します。voidsetErrorResponseInterceptors(ListSE<ErrorResponse.Interceptor> interceptors) RFC 9457ProblemDetailエラーレスポンスをレンダリングするときに適用するErrorResponse.Interceptorのリストを構成します。voidsetMessageConverters(ListSE<HttpMessageConverter<?>> messageConverters) 使用するメッセージ本文コンバーターを設定します。voidsetResponseBodyAdvice(@Nullable ListSE<ResponseBodyAdvice<?>> responseBodyAdvice) @ResponseBodyアノテーションが付けられたコントローラーメソッドの実行後、またはResponseEntityを返した後、選択されたHttpMessageConverterでレスポンスにボディが書き込まれる前に呼び出される 1 つ以上のコンポーネントを追加します。voidsetReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers) サポートされている戻り値の型の完全なリストを構成し、そうでなければデフォルトで構成されるハンドラーをオーバーライドします。protected booleanshouldApplyTo(jakarta.servlet.http.HttpServletRequest request, @Nullable ObjectSE handler) ハンドラーがHandlerMethodであるか、リゾルバーにグローバル例外ハンドラーがあるかどうかを確認し、必要に応じてHandlerMethodの Bean を渡して#shouldApplyToの基本クラス実装に委譲します。クラス AbstractHandlerMethodExceptionResolver から継承されたメソッド
doResolveExceptionクラス 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(List)を使用します。getCustomArgumentResolvers
カスタム引数リゾルバー、またはnullを返します。setArgumentResolvers
サポートされている引数型の完全なリストを構成して、デフォルトでは構成されないリゾルバーをオーバーライドします。getArgumentResolvers
設定済みの引数リゾルバーを返します。afterPropertiesSet()を介してまだ初期化されていない場合は、nullを返します。setCustomReturnValueHandlers
public void setCustomReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers) カスタム戻り値型のハンドラーを提供します。カスタムハンドラーは、組み込みハンドラーの後にオーダーされます。戻り値の処理の組み込みサポートをオーバーライドするには、setReturnValueHandlers(List)を使用します。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(ResourceLoader)、ApplicationEventPublisherAware.setApplicationEventPublisher(ApplicationEventPublisher)およびMessageSourceAwareの後に呼び出されます(該当する場合)。- 次で指定:
- インターフェース
ApplicationContextAwareのsetApplicationContext - パラメーター:
applicationContext- このオブジェクトによって使用される ApplicationContext オブジェクト- 関連事項:
getApplicationContext
afterPropertiesSet
public void afterPropertiesSet()インターフェースからコピーされた説明:InitializingBeanすべての Bean プロパティを設定し、BeanFactoryAware、ApplicationContextAwareなどを満たした後、包含BeanFactoryによって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBeanのafterPropertiesSet
getExceptionHandlerAdviceCache
ApplicationContext で検出された@ControllerAdviceBean を含む変更不可能なマップを返します。Bean がafterPropertiesSet()で初期化される前にメソッドが呼び出されると、返されるマップは空になります。getDefaultArgumentResolvers
setCustomArgumentResolvers(List)を介して提供される組み込みリゾルバーとカスタムリゾルバーを含む、使用する引数リゾルバーのリストを返します。getDefaultReturnValueHandlers
setReturnValueHandlers(List)を介して提供される組み込みおよびカスタムハンドラーを含む、使用する戻り値ハンドラーのリストを返します。hasGlobalExceptionHandlers
protected boolean hasGlobalExceptionHandlers()クラスからコピーされた説明:AbstractHandlerMethodExceptionResolverこのリゾルバーにグローバル例外ハンドラーがあるかどうか。たとえば、例外を発生させたHandlerMethodと同じクラスで宣言されていないため、任意のハンドラーに適用できます。- オーバーライド:
- クラス
AbstractHandlerMethodExceptionResolverのhasGlobalExceptionHandlers
shouldApplyTo
protected boolean shouldApplyTo(jakarta.servlet.http.HttpServletRequest request, @Nullable ObjectSE handler) クラスからコピーされた説明:AbstractHandlerMethodExceptionResolverハンドラーがHandlerMethodであるか、リゾルバーにグローバル例外ハンドラーがあるかどうかを確認し、必要に応じてHandlerMethodの Bean を渡して#shouldApplyToの基本クラス実装に委譲します。それ以外の場合は、falseを返します。- オーバーライド:
- クラス
AbstractHandlerMethodExceptionResolverのshouldApplyTo - パラメーター:
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メソッドを見つけて呼び出し、発生した例外を処理します。- 次で指定:
- クラス
AbstractHandlerMethodExceptionResolverのdoResolveHandlerMethodException - パラメーター:
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