簡體   English   中英

如何處理Filters中拋出的異常?

[英]How to handle exceptions thrown in Filters?

我使用的是Spring 4和Tomcat。 問題是有時我必須在我的過濾器中拋出(自定義)RuntimeException(控件甚至沒有到達控制器)。 問題是因為我沒有拋出tomcat理解的異常,它被轉換為500(內部服務器錯誤)。 我相信403 Forbidden會比500更好(對於我的自定義例外)。 我查看了@ExceptionHandler@ControllerAdvice注釋。 但這些只有在控制器到達控制器時才起作用。

截至目前,我在我的過濾器中的HTTPResponse中手動將狀態設置為403。 有沒有更好的方法來處理這種情況?

你應該使用這樣的東西

在web.xml中設置錯誤處理程序

<error-page>
    <exception-type>java.lang.RuntimeException</exception-type>
    <location>/handleExceptionService</location>
</error-page>

所以,當你到達你的服務時,你可以用錯誤來做你想要的。

祝好運!!!

You can add in web.xml
<error-page>
    <error-code>404</error-code> 
    <location>/error-404.html</location>
</error-page> 
<error-page>
    <error-code>403</error-code> 
    <location>/access_denied.html</location>
</error-page> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM