首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

一个关于finnally的实施顺序的特别说明

2012-12-23 
一个关于finnally的执行顺序的特别说明今天, 读到一段源码,对finally的执行顺序产生了一点疑惑, 源码如下:

一个关于finnally的执行顺序的特别说明
    今天, 读到一段源码,对finally的执行顺序产生了一点疑惑, 源码如下:


在test方法中, finally是何时执行的呢?
    执行结果是: 在"begin"之后, "end"之前, 执行了10次"finally " + i .
    这与我之前对finally的执行顺序有很大差别, 在之前我一直认为finally语句块是方法中最后执行的. 但是对test方法来说, 以前的那种理解明显是一个悖论, 是不成立的.
    接下来, 我编写了如下两段代码

    在观察了这两段代码的执行结果与最初的test方法的执行结果十分类似, finally语句块都是在"begin"和"end"之间执行的.
    由此我得出另一个对finally语句块执行顺序的结论:"finally语句块是在该finally语句块上一层语句块的最末执行的".
    test  方法中finally语句块的上一层语句块是for语句块;
    test1 方法中finally语句块的上一层语句块是if语句块;
    test2 方法中finally语句块的上一层语句块由{}构成的;

特记载于此.

热点排行