• 当C#中带有return的TryCatch代码遇到Finally时代码执行顺序


    编写的代码最怕出现的情况是运行中有错误出现,但是无法定位错误代码位置。综合《C#4.0图解教程》,总结如下:

    TryCatchFinally用到的最多的是TryCatch,Catch可以把Try代码块的错误捕捉到,并对错误进行后续处理。这一点比较常见。

    现在要讨论的是如果Try和Catch代码块有return时代码的执行顺序。众所周知,return的作用是退出当前函数,不执行return后面的代码。那么问题来了:如果return出现在Try或catch代码块中,并且return后面还有代码,则return后面的代码将不再执行,程序直接退出这个函数。假如我们在这个函数中有一些代码无论何种情况下都是必须要执行(比如ADO.Net中的数据库连接,为保证稳定,即使代码出现异常也需要通过代码强制关闭该连接),那么简单的TryCatch就不能很好的满足需求了。此时Finally代码块的作用就显现出来了。

    《C#4.0图解教程》中讲到,Finally代码块的优先级比较高,不论TryCatch代码块如何运行,最后都要执行Finally代码块。即使Try和Catch中有return也无妨。

    直接上图,具体的代码执行顺序在图中标注的比较清楚。

    第一张:return出现在Catch中


    第二张:return出现在Try中

  • 相关阅读:
    float浮点型底层存储原理
    PermissionError: WinError
    django数据库设置sql_mode
    Git 之 git diff
    以太网数据格式与封装解封
    MYSQL进阶
    MYSQL基础
    Python连接MySQL数据库之pymysql模块使用
    Python装饰器进阶
    BootStrap框架
  • 原文地址:https://www.cnblogs.com/mzyj/p/4470123.html
Copyright © 2020-2023  润新知