クラス ResponseStatusExceptionResolver
- 実装されたすべてのインターフェース:
Aware
、MessageSourceAware
、Ordered
、HandlerExceptionResolver
@ResponseStatus
アノテーションを使用して例外を HTTP 状況コードにマップする HandlerExceptionResolver
。 この例外リゾルバーは、DispatcherServlet
および MVC Java 構成と MVC 名前空間でデフォルトで有効になっています。
4.2 の時点で、このリゾルバーは原因の例外に存在する @ResponseStatus
を再帰的に検索し、4.2.2 の時点でこのリゾルバーはカスタム合成アノテーションで @ResponseStatus
の属性オーバーライドをサポートします。
5.0 現在、このリゾルバーは ResponseStatusException
もサポートしています。
- 導入:
- 3.0
- 作成者:
- Arjen Poutsma, Rossen Stoyanchev, Sam Brannen
- 関連事項:
フィールドのサマリー
クラス org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver から継承されたフィールド
logger
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected ModelAndView
applyStatusAndReason
(int statusCode, StringSE reason, HttpServletResponseEE response) 解決済みのステータスコードと理由をレスポンスに適用します。protected ModelAndView
doResolveException
(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表すModelAndView
を返します。protected ModelAndView
resolveResponseStatus
(ResponseStatus responseStatus, HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) @ResponseStatus
アノテーションを処理するテンプレートメソッド。protected ModelAndView
resolveResponseStatusException
(ResponseStatusException ex, HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler) ResponseStatusException
を処理するテンプレートメソッド。void
setMessageSource
(MessageSource messageSource) このオブジェクトが実行されるMessageSource
を設定します。クラス org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver から継承されたメソッド
addMappedHandlerClass, buildLogMessage, getMappedHandlerClasses, getOrder, hasHandlerMappings, logException, prepareResponse, preventCaching, resolveException, setMappedHandlerClasses, setMappedHandlerPredicate, setMappedHandlers, setOrder, setPreventResponseCaching, setWarnLogCategory, shouldApplyTo
コンストラクターの詳細
ResponseStatusExceptionResolver
public ResponseStatusExceptionResolver()
メソッドの詳細
setMessageSource
インターフェースからコピーされた説明:MessageSourceAware
このオブジェクトが実行されるMessageSource
を設定します。通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet などの init コールバックやカスタム init メソッドの前に呼び出されます。ApplicationContextAware の setApplicationContext の前に呼び出されます。
- 次で指定:
- インターフェース
MessageSourceAware
のsetMessageSource
- パラメーター:
messageSource
- このオブジェクトが使用するメッセージソース
doResolveException
@Nullable protected ModelAndView doResolveException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) クラスからコピーされた説明:AbstractHandlerExceptionResolver
ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表すModelAndView
を返します。特定の例外チェックを適用するために、サブクラスでオーバーライドできます。このテンプレートメソッドは、このリゾルバーが適用されるかどうか ( "mappedHandlers" など) を確認した後に呼び出されるため、実装では実際の例外処理をそのまま続行できます。
- 次で指定:
- クラス
AbstractHandlerExceptionResolver
のdoResolveException
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスhandler
- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull
(たとえば、マルチパート解決が失敗した場合)ex
- ハンドラーの実行中にスローされた例外- 戻り値:
- 転送先の対応する
ModelAndView
、または解決チェーンでのデフォルト処理の場合はnull
resolveResponseStatus
protected ModelAndView resolveResponseStatus(ResponseStatus responseStatus, HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) throws ExceptionSE @ResponseStatus
アノテーションを処理するテンプレートメソッド。デフォルトの実装は、アノテーションからのステータスコードと理由で
applyStatusAndReason(int, java.lang.String, jakarta.servlet.http.HttpServletResponse)
に委譲します。- パラメーター:
responseStatus
-@ResponseStatus
アノテーションrequest
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスhandler
- 実行されたハンドラー、または例外発生時に何も選択されていない場合はnull
(マルチパート解決に失敗した場合など)ex
- 例外- 戻り値:
- 空の ModelAndView、つまり例外が解決された
- 例外:
ExceptionSE
resolveResponseStatusException
protected ModelAndView resolveResponseStatusException(ResponseStatusException ex, HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler) throws ExceptionSE ResponseStatusException
を処理するテンプレートメソッド。デフォルトの実装では、
ResponseStatusException.getHeaders()
からのヘッダーが適用され、例外からのステータスコードと理由とともにapplyStatusAndReason(int, java.lang.String, jakarta.servlet.http.HttpServletResponse)
に委譲されます。- パラメーター:
ex
- 例外request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンスhandler
- 実行されたハンドラー、または例外発生時に何も選択されていない場合はnull
(マルチパート解決に失敗した場合など)- 戻り値:
- 空の ModelAndView、つまり例外が解決された
- 例外:
ExceptionSE
- 導入:
- 5.0
applyStatusAndReason
protected ModelAndView applyStatusAndReason(int statusCode, @Nullable StringSE reason, HttpServletResponseEE response) throws IOExceptionSE 解決済みのステータスコードと理由をレスポンスに適用します。デフォルトの実装では、理由がある場合は
HttpServletResponse.sendError(int)
EE またはHttpServletResponse.sendError(int, String)
EE を使用してレスポンスエラーを送信し、空の ModelAndView を返します。- パラメーター:
statusCode
- HTTP ステータスコードreason
- 関連する理由 (null
または空の場合があります)response
- 現在の HTTP レスポンス- 例外:
IOExceptionSE
- 導入:
- 5.0