您当前的位置: 首页 > 

衣舞晨风

暂无认证

  • 0浏览

    0关注

    1156博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

有return的情况下try catch finally的执行顺序

衣舞晨风 发布时间:2014-08-22 08:08:12 ,浏览量:0

背景:

         昨天一个朋友出去面试,遇到这么一道题:“C#  catch里有return,finally里还执行吗?”

个人实践小结:

        1、不管有木有出现异常,finally块中代码都会执行。         2、当try和catch中有return时,finally仍然会执行。    

具体案例如下(此处以没有返回值的函数进行验证):

        

       3、如果是值传递,finally中改变的值对try或catch块中return返回的值无影响;如果是引用类型参数(地址传递或对象),finally中的值改变对return会产生影响。

具体案例:

      引用案例--数组类型:

        值案例--int类型:

        思考:string类型属于引用类型,那么它的返回值会受到finflly的影响吗?还是来看案例吧-----其实string与int类型的表现一样,不会受到finally的影响:

        思考:那么在finally中加上return,会产生什么影响呢?有图有真相:

        可见,finally中是不允许出现return的,否则连编译都过不去。

        

       

关注
打赏
1647422595
查看更多评论
立即登录/注册

微信扫码登录

0.0400s