这里有一些代码,我不确定如果reader.close()方法抛出异常,它会如何反应。
public void someMethod(String s) throws IOException{
BufferedReader reader = Files.newBufferedReader(filePath,cs);
listRWLock.readLock().lock();
try{
//miscellaneous code involving reading
}finally{
reader.close()
listRWLock.readLock().unlock()
}
}
ListRWLock是一个可重入的ReentrantReadWriteLock。如果reader.close()方法抛出异常,那么它后面的语句会执行失败吗?我尝试搜索了这个主题,虽然我找到了一些关于finally在return语句中执行的内容,但我没有找到有关在finally块内抛出异常时会发生什么的详细信息。
提前谢谢。
finally
块中的return
可能会覆盖先前的异常。 - S.D.