THINK IN JAVA里面的一个例题看不懂 90分答谢解答者
9.6.2 缺点:丢失的违例
一般情况下,Java的违例实施方案都显得十分出色。不幸的是,它依然存在一个缺点。尽管违例指出程序里存在一个危机,而且绝不应忽略,但一个违例仍有可能简单地“丢失”。在采用finally从句的一种特殊配置下,便有可能发生这种情况:
class VeryImportantException extends Exception {
public String toString() {
return "A very important exception!";
}
}
class HoHumException extends Exception {
public String toString() {
return "A trivial exception";
}
}
public class LostMessage {
void f() throws VeryImportantException {
throw new VeryImportantException();
}
void dispose() throws HoHumException {
throw new HoHumException();
}
public static void main(String[] args)
throws Exception {
LostMessage lm = new LostMessage();
try {
lm.f();
} finally {
lm.dispose();
}
}
}
第一个困惑着么有TRY没CATCH?..而是TRY和FINALLY组合在一起是社么意思?
第二个困惑 我的理解是第一个异常还没来得及离开该程序去执行异常处理而被FINNALLY强制执行了
一个方法,导致第2个异常产生而让JVM无法回到第一个异常抛出点来执行处理?
第三个困惑 是否可以加CATCH?