从ServletContextListener抛出异常

时间:2009-08-26 13:40:30

标签: java servlets

我想从实现ServletContextLister的类中的方法抛出ServletContext异常。

这是我失败的实现:

public class  Initializer implements ServletContextListener {

    private void checkEncryptedFile() throws ServletException {

    FileReader fr;
    try {
        fr = new FileReader("TestFile");
        BufferedReader br = new BufferedReader(fr);
        String str = br.readLine();
        if(!str.equals("aasditya")){
        throw new ServletException();
        }


    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    catch(IOException e){
        e.printStackTrace();
    }
    catch(ServletException se){
        throw new ServletException("kiasku " + se.getMessage(), se);

    }
    }
}

任何人都可以建议任何替代方法。请指导我这个。 感谢

1 个答案:

答案 0 :(得分:2)

当接口方法也抛出异常时,你应该删除没有

的catch块
try {
                //....

    }
    catch(IOException e){
            throw new ServletException("kiasku " + e.getMessage(), e);
    }

而且你的异常处理应该有效。

修改

您是否正确实施了ServletContextListener的接口方法?它们不在您的代码示例中。但他们必须在课堂上。

据我所知,interfae方法不会抛出任何类型的异常。当你真的想要BREAK监听器通知时,你必须抛出一个RuntimeException。

<强> EDIT2:

我也会改变

if(!str.equals("aasditya")){
throw new ServletException();
}

if(!"aasditya".equals(str)){
throw new ServletException();
}