繁体   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