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

背景:

         昨天一个朋友出去面试,遇到这么一道题:“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的,否则连编译都过不去。

        


       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值