java 代码
当文件不存在时,运行结果为:
File Not Found !
Doing finally !
-1
当文件存在时,运行结果为:
Doing finally !
1
这样的结果,有意外么? 有!
* 首先看捕获异常的情况:
在位置1执行后,没有执行位置2,而是先在执行了位置3,再回来执行位置2,是否可以这样总结: 在 catch 块遇到 return 时,会先查找 finally 块并执行,然后再返回 catch 块执行return.
* 再看没有异常的情况:
finally 块还是在 return 前被执行了, 是否可以这样总结: 只要函数体中有 finally 块, 它就一定会执行; 如果函数有 return , 那么finally也一定在 return 前执行.