我想从实现ServletContext的类中的方法中抛出一个ServletContextLister异常。
以下是我的实现失败的原因:
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);
}
}
}有人能建议其他方法吗。请给我带路。谢谢
发布于 2009-08-26 13:57:59
当接口方法也抛出异常时,应该删除catch块
try {
//....
}
catch(IOException e){
throw new ServletException("kiasku " + e.getMessage(), e);
}比你的异常处理更有效。
编辑:
您是否正确地实现了ServletContextListener的接口方法?它们不在您的代码示例中。但他们必须在课堂上。
据我所见,interfae方法没有抛出任何类型的异常。当您真的想破坏侦听器通知时,您必须抛出一个RuntimeException。
EDIT2:
我也会改变
if(!str.equals("aasditya")){
throw new ServletException();
}至
if(!"aasditya".equals(str)){
throw new ServletException();
}https://stackoverflow.com/questions/1334766
复制相似问题