try {
throw new SomeException();
}
catch (SomeException e) {
System.out.println("reached once");
throw e;
}
catch (Exception e) {
System.out.println("reached twice");
}
此代码仅显示“到达一次”,即使在第一个catch子句中再次抛出异常。如何修复这两个catch子句呢?
PS:上面的代码是我的一般性问题,我不得不将它应用于一个更大的代码,其中包含大约5或6个捕获子句,这些子句捕获不同的异常,但最后,在循环的某个点上我需要再次抛出异常。答案 0 :(得分:2)
只需在catch中添加另一个try catch。
try {
try {
throw new NullPointerException();
} catch (NullPointerException e) {
System.out.println("reached once");
throw e;
}
} catch (SomeOtherException ex) {}
答案 1 :(得分:0)
你必须使用try / catch块来覆盖所有可以抛出异常的代码
try {
throw new NullPointerException();
}
catch (NullPointerException e) {
System.out.println("reached once");
try{
throw e;
}
catch (Exception ex) {
System.out.println("reached twice");
}
}