0

我正要重构以下 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

4 回答 4

13

错误处理程序?不知道为什么那里没有任何错误处理

于 2009-04-22T18:28:35.060 回答
4

“***E***错误***H***andler”

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

理论上,err_exit 是用来做一些清理工作的,但实际上我们的大多数函数都像这样结束

  return 0;
err_exit:
  return -1;
于 2009-04-22T18:28:45.167 回答
0

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

于 2009-04-22T18:31:17.470 回答
0

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

因此,您可以将 eh_Exit 中的所有内容粘贴到任何函数中,而无需更改该函数中的剩余代码。

于 2009-04-22T18:36:36.427 回答