我有一个try
块,如下所示:
Exception thrownException = null;
try {
puke(); // throws Exception
} catch (final Exception everything) {
thrownException = everything;
// do some other stuff, wrapped in try/catch blocks to prevent accidental shadowing
// now throw the thing
throw everything;
} finally {
if (thrownException != null) {
// do some other work here, taking care to swallow/log exceptions that might come up
}
}
我的印象是,everything
Exception
将被抛出,并且此构造存在的方法的调用者将会看到它。
我们有一个测试,但似乎并非如此(即只有各种日志消息暗示我们遇到异常情况; everything
Exception
实际上已经消失了) 。如果我们是对的,这似乎是JDK 8中的一个主要错误,所以我有疑虑。
我错过了什么?