如果一个过滤器在servlet中抛出异常会发生什么?

时间:2017-09-12 13:33:14

标签: java servlets servlet-filters

我想在现有项目中添加过滤器,并且不要期望我的过滤器在异常情况下影响原始过程。在任何情况下,都应该执行原始过滤器。

所以,我想知道,当我遇到异常时应该如何处理:

  1. 抛出异常
  2. 捕获异常并致电chain.doFilter();
  3. 什么都不做,如下面的代码:

    if (filter != null) {
    
        filter.doFilter(req,resp,chain);
        // should I catch the exception here?
    } else {
    
        chain.doFilter(req,resp);
    }
    
  4. 谢谢大家。

1 个答案:

答案 0 :(得分:0)

try-catch块嵌套在if(filter!=null)内 例如:

if(filter != null){
     try{} catch (Exception e){
        //do something
    }
}

此外,您可以在finally之后使用catch进行任何清理或您想要运行的代码,无论是否捕获到异常。