私はSpringブートWebアプリケーションを作成していますが、より明快で明示的なエラーページレジストラがあると、なぜグローバル例外ハンドラ(@ControllerAdvice)を使用するのか混乱します。誰かがもっと説明でき、グローバル例外ハンドラクラス(@Exceptionhandlerメソッドを持つ@ControllerAdviceでクラスが宣言されているクラス)からエラーページレジストラを呼び出すことができますか?エラーページレジストラとグローバル例外処理
答えて
ブライアンの答えとして、私はあなたがこれを行うことができると思います。 https://github.com/kennytai/SampleSpringbootExceptionHandler このサンプルでは、TestController
からすべての例外を管理するために、GlobalExceptionHandler
クラスの@ControllerAdvice
を使用します。このサンプルでは、このサンプルをここで証明します。
このヘルプが必要です。
実際には反対です。error pages mechanism in Spring Bootはグローバルです。アプリケーションによって処理されないすべての例外をキャッチしています。サーブレット環境では、要求を/error
パスのコンテナに戻して送信することにも注意してください。
あなたはそうですが、このメカニズムは本当に強力で、多くのことを達成することができます。
あなたが言及している他の例外処理メカニズムは、Spring MVC自身によって提供されています。これらはリクエストの処理中に実行され、コンテナへの追加のディスパッチを必要としません。場合によっては、ErrorController
(これはMVCコントローラ)よりも少ない機能しか提供しないため、より限定的な場合もあります。 しかし、エラーページとは異なり、あなたが集中し、それらを設定することができ、特定のエラー:あなたは
@ExceptionHandler
を宣言し、例外の種類を指定することができ
@ControllerAdvice
注釈は唯一のコントローラが特定のインターフェイスを拡張したり、特定のアノテーション
私はあなたがコントローラレベルでのビジネス例外に対処したい場合、後者は非常に便利ですと言うだろうと注釈を付け、特定のパッケージに適用します。エラーページでこれを行うことはできますが、あまりにも多くのものを扱う単一のエラーコントローラで終わる可能性があります。
ありがとう。私の質問は両方とも自分自身の方法で役に立つので、私はExceptionPageRegistrarをGlobalExceptionHandlerから呼び出すことができます –
- 1. WCFグローバル例外処理
- 2. Flaskグローバル例外処理
- 3. Angular2グローバル例外処理
- 4. グローバル例外処理とログインasp.net MVCコア
- 5. Eclipse RCPアプリケーションのグローバル例外処理
- 6. Spring 4 mvcグローバル例外処理
- 7. winformsコントロールのグローバル例外処理
- 8. C++でのグローバル例外処理
- 9. retrofit2 rxjava2ネットワーク例外とグローバル認証を処理する
- 10. Springリアクトルと従属応答でのグローバル例外処理
- 11. 例外処理
- 12. 例外処理
- 13. スマートポインタと例外処理
- 14. 例外処理とメモリ
- 15. 例外処理とユーザーフレンドリーメッセージ
- 16. 例外処理とロギングアプリケーションブロックエンタープライズライブラリ5.0
- 17. ジャージとフィルター例外処理
- 18. TPLと例外処理
- 19. Zend AMFと例外処理
- 20. スプリングバッチページリーダーと例外処理
- 21. エラー処理と対象処理の例外処理の比較
- 22. モノトーングローバル例外処理
- 23. 例外処理エラー
- 24. MVVM例外処理
- 25. Android。例外処理
- 26. DB2例外処理
- 27. DB2例外処理
- 28. カスタム例外処理
- 29. JAXB例外処理
- 30. TimeOut例外処理
それは非常に有用です...私はまだそれを越えていますが、私の質問はどちらも自分自身の方法で役に立ちます。 GlobalExceptionHandlerからExceptionPageRegistrarを呼び出す –
私はそれが可能だと思います。任意のExceptionをThrowすることができ、GlobalExceptionHandlerはそれを取得してメッセージ、応答コードなどを処理します。 –