在readFileMethod1中,IOException在将其抛出方法级别之前被明确捕获,以确保finally块被执行.但是,是否需要捕获异常?如果我删除了readFileMethod2中的catch块,finally块是否也被执行?
private void readFileMethod1() throws IOException { try { // do some IO stuff } catch (IOException ex) { throw ex; } finally { // release resources } } private void readFileMethod2() throws IOException { try { // do some IO stuff } finally { // release resources } }
解决方法
最终仍然被执行,无论你是否捕获IOException.如果所有的catch块都是重新抛出,那么这里就没有必要了.