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