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

简介: 背景:          昨天一个朋友出去面试,遇到这么一道题:“C#  catch里有return,finally里还执行吗?” 个人实践小结:         1、不管有木有出现异常,finally块中代码都会执行。         2、当try和catch中有return时,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的,否则连编译都过不去。

        


       

相关文章
每日一道面试题之try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
每日一道面试题之try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
176 0
|
8月前
|
编译器
try{...}catch(){...}finally{...}语句你真的理解吗?
try{...}catch(){...}finally{...}语句你真的理解吗?
38 0
try catch finally,try 里面有 return,finally 还执行吗?
try catch finally,try 里面有 return,finally 还执行吗?
91 0
|
8月前
|
存储 缓存 IDE
细琢磨,try catch finally 执行顺序与返回值
细琢磨,try catch finally 执行顺序与返回值
69 0
16 # 实现 catch 方法
16 # 实现 catch 方法
63 0
try...catch中,catch加了return,后面的代码是不会执行的
try...catch中,catch加了return,后面的代码是不会执行的
112 0
|
存储 IDE Java
try catch finally 执行顺序总结
try catch finally 执行顺序总结
135 0
|
Java
【学习笔记】【Java】try-catch-finally中,finally是在什么时候执行的:try结束、catch结束、return前
结论:try-catch-finally中,finally执行:try结束、catch结束、return前
204 0
【学习笔记】【Java】try-catch-finally中,finally是在什么时候执行的:try结束、catch结束、return前
|
编译器
有return的情况下try catch finally的执行顺序(最有说服力的总结)
有return的情况下try catch finally的执行顺序(最有说服力的总结)
172 0
|
NoSQL Java 数据库连接
finally 和 return,到底谁先执行
经常有人面试被问到:finally 和 return,到底谁先执行呢?