【发布时间】:2015-06-12 17:21:43
【问题描述】:
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 个捕获不同异常的 catch 子句,但最终,在循环中的某个点我需要再次抛出异常。
【问题讨论】:
-
把这个
try-catch包装在另一个try-catch中。 -
不要这样做。几十年来,“Log-and-throw”一直被认为是一种反模式。
标签: java exception try-catch finally clause