【发布时间】:2011-05-14 23:21:05
【问题描述】:
即使执行了catch块并抛出了第二个异常,在这段代码中是否会设置someVar?
public void someFunction() throws Exception {
try {
//CODE HERE
} catch (Exception e) {
Log.e(TAG, "", e);
throw new Exception(e);
} finally {
this.someVar= true;
}
}
【问题讨论】:
-
因为在某些情况下行为不符合预期,如@GaryF所示
-
值得注意的是,最终块如果抛出异常或返回,可能无法按预期执行。