java同步锁问题请问大神,如果没有非Runtime异常,为什么lock还是得在finally中释放
tkk13 2016-07-05 06:02:05 如题,如果发生的是非Runtime异常,那当然得在finally中释放,以求catch到以后可以继续该线程运行,可是如果发生的是Runtime异常,那么这一线程本身就会终止运行,是否释放lock对该线程不就没有意义了吗?.
既然是这样的话,为什么还需要
try {
// access the resource protected by this lock
} finally {
l.unlock();
}
这段代码是API说明文件中的,它的意思显然是try语句不会throw任何非Runtime异常,所以才没有catch.
是习惯还是会有其他例外的情况发生才必须用finally?