finally
块内的 throw
语句。
虽然偶尔是有意为之,但此类 throw
语句可能隐藏从 try
和 catch
块抛出的异常,并使调试过程变得复杂。
示例:
class Fascinating {
void doTask(Task t) {
try {
t.activity();
} finally {
if (!t.finish()) {
throw new IllegalStateException();
}
}
}
}
使用在可能抛出已声明异常的每一处发出警告选项,可以在调用声明了异常的方法时也发出警告。