java – 从ServletContextListener中抛出异常

我想从实现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);

    }
    }
}

谁能建议任何替代方法.请指导我这个.
谢谢

最佳答案 当接口方法也抛出异常时,你应该删除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();
}
点赞