代码之家  ›  专栏  ›  技术社区  ›  dance2die

猜猜这个标签

  •  0
  • dance2die  · 技术社区  · 16 年前

    我正准备按照VB6代码(由其他人编写)重构这个代码。

    Public Function GetValue(ID As Long) As Boolean
        On Error GoTo eh
    
        '' ... DAL Logic...
    
    eh_Exit:
      On Error GoTo 0
      Exit Function
    eh:
      Resume eh_Exit
    End Function
    

    你认为原作者的意图是什么 eh ?

    可能只是“嗯,发生了什么事?”…

    我想让它读起来,而不必像现在这样思考…

    4 回复  |  直到 16 年前
        1
  •  13
  •   Ryan Brunner    16 年前

    错误汉德勒?不知道为什么没有,你知道, 错误处理 在那里。

        2
  •  4
  •   Joel Coehoorn    16 年前

    “***e***rror***h***andler”

    我的第一个C作业是,每个函数的底部都有一个名为“err_exit”的标签。检测到无法在本地处理的任何错误条件,并使用“if(error…)goto err_exit;”进行处理。此外,我们的所有函数都返回了状态良好的0或错误的-1。

    在理论上,err_exit是为了进行一些清理,但在实践中,我们的大部分功能都以

      return 0;
    err_exit:
      return -1;
    
        3
  •  0
  •   Daniel Daranas    16 年前

    “有趣”的设计。在调试期间,它看起来像是放置断点的地方,但它有创意地令人困惑。

        4
  •  0
  •   Peter M    16 年前

    我冒昧地猜测,这是一种允许函数代码结束的模式,不必跳过任何错误处理逻辑,而且如果函数编写器没有exit函数语句,也可以优雅地终止。

    因此,您可以将所有东西从eh_exit粘贴到任何函数中,而不必更改该函数中的剩余代码。