我正在动态网络应用程序中读取属性文件,如下所示:
try
{
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("messages.properties"));
}
catch(IOException e){
e.printStackTrace();
throw new AxisFault(e.getMessage());
}
它正确加载消息而没有任何问题,我将其复制到WEB-INF / classes目录中。现在,如果我删除该文件并尝试运行Web应用程序,则会抛出NullPointerException,而不是捕获并抛出Axis Fault异常。
如果message.properties文件不存在,如何捕获异常?
答案 0 :(得分:0)
NullPointerException是一个运行时异常,因此编译器不会警告您没有捕获它。它不是一种IOException,所以它不会被你的catch块捕获。
你可以这样做:
try {
//do something
} catch (IOException e) {
} catch (NullPointerException e) {
}
或捕捉所有其他例外
try {
//do something
} catch (IOException e) {
} catch (Exception e) {
}