【发布时间】:2013-12-25 18:56:59
【问题描述】:
我注意到,在 Java 中,如果当前线程在 try 块中暂停,则相应的 finally 块不会被执行,例如
Semaphore lock = new Semaphore(0);
try {
lock.acquire();
} finally {
// do something
}
这种观察是否可以推广到线程的暂停,即 Oracle 文档所说的只能用来绕过 return、break 和 continue 是否属实?
Oracle 文档。说:
但 finally 不仅仅对异常处理有用——它 允许程序员避免意外清理代码 被返回、继续或中断绕过。
【问题讨论】:
标签: java multithreading finally