1. 简述
Java 的异常也是有瑕疵的。异常作为出错的标志,绝不应该被忽略,但它还是有可能被轻易的忽略。用某些特殊的方式使用 finally 子句,就会发生这种情况。
2. 代码实现
代码:
class VeryImportantException extends Exception {
@Override
public String toString() {
return "A very important exception!";
}
}
class HoHumException extends Exception {
@Override
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) {
try {
LostMessage lm = new LostMessage();
try {
lm.f();
} finally {
lm.dispose();
}
} catch (Exception e) {
System.out.println(e);
}
}
}
输出:
A trivial exception.
3. 说明
在 finally 子句中,HoHumException 将 VeryImportantException 取代了。因此使用的时候要注意。