我想从实现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);
}
}
}
任何人都可以建议任何替代方法。请指导我这个。 感谢
答案 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();
}