私はSpring 4とTomcatを使用しています。問題は、私のフィルタに(カスタムの)RuntimeExceptionをスローする必要がある場合があります(コントローラはコントローラにも到達していません)。問題は、Tomcatが理解できる例外を投げているわけではないので、500(内部サーバーエラー)に変換されます。私は、403禁止が500より良いと信じています(私のカスタム例外のため)。私は@ExceptionHandler
と@ControllerAdvice
注釈を見ました。しかし、これらはコントロールがコントローラーに到達した場合にのみ機能します。フィルタでスローされた例外を処理する方法は?
今のところ、自分のフィルタのHTTPResponse
でステータスを手動で403に設定しています。このシナリオを処理するより良い方法はありますか?
[こちらの記事(http://stackoverflow.com/questions/29914717/servlet-filter-specific-exception-handling-in-java)]を参照してください。フィルタを拡張し、例外をスーパーで処理できます。 –
@TimBiegeleisen - まあ、今のところ私は同様のアプローチに従っています:)。そのポストを指摘していただきありがとうございます。 – TheLostMind
@TimBiegeleisen私は同様の問題に遭遇し、https://stackoverflow.com/questions/34595605/how-to-manage-exceptions-thrown-in-filters-in-spring/ここに興味があるかもしれない解決策を掲載しました。 43242424 – Raf