【发布时间】:2015-07-07 00:37:45
【问题描述】:
我有一个扩展 HttpServlet 并实现 GET 请求的 servlet。我还使用映射到上述 servlet url 的过滤器(来自外部库)。现在过滤器抛出异常,正如预期的那样,我得到了这个
严重:Servlet.service() for servlet [myServlet] 在上下文中 路径 [] 抛出异常
我知道error-page 描述可能是捕获此异常的标准方法,但是有没有办法从特定的 servlet 过滤器中捕获异常?我已经有一个 error-page 描述并重定向到一个简单的 html 页面。我也不想重定向到一个jsp页面左右,并玩弄错误参数。简而言之,我的问题是:
- 是否有更简单、优雅的方法来捕获特定 servlet 的异常并处理它们?
error-page描述符似乎没有任何字段可以选择引发异常的 servlet。 - 如果过滤器抛出的异常不是自定义异常,是否可以捕获特定过滤器中发生的异常并处理它们?
【问题讨论】:
-
这是一个已检查或未检查的异常?
-
异常是
ArrayIndexOutOfBoundsException,其原因是已知的,来自用户的无效输入。这记录在过滤器文档中,这是否归类为已检查异常?问题是,它也可能是“NullPointerException”,我希望能够知道它来自特定过滤器。 -
那个异常没有被选中。但是如果这个过滤器是你的,你为什么不在过滤器本身修复它呢?如果你知道它可以被抛出并且在这种情况下你应该返回 401,那么就这样做而不是让异常松散
-
过滤器不是我的,正如问题中所说,我使用外部库。
-
对不起,我没有正确阅读该部分...也许在此之前插入一个过滤器以检查输入正确性?但它看起来像另一个过滤器中的错误
标签: java exception servlets exception-handling servlet-filters