try-catch-finally 如何使用?
try用于捕获代码块的异常,catch用于处理try捕获的可能出现的异常,finally用于善后,比如在try catch中return之前有需要做的事,可以放进finally中。
一个try可以有0个到多个catch块,如果没有catch块,那么finally块就必须要有,如果有catch块,finally块是非必须的。
finally是否一定会执行?
在非极端条件下,finally都会正常执行,除非虚拟机崩溃,线程被杀死finally无法继续执行。
finally的一些应用:
lock.lock();
try {// ... 访问共享资源 ...
} finally {lock.unlock();
}