vb6 - "On Error Goto 0"退出函数前

标签 vb6 error-handling

MzTools 中默认的错误处理模板是:

On Error GoTo {PROCEDURE_NAME}_Error

    {PROCEDURE_BODY}

   On Error GoTo 0
   Exit {PROCEDURE_TYPE}

{PROCEDURE_NAME}_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure {PROCEDURE_NAME} of {MODULE_TYPE} {MODULE_NAME}"

请注意,On Error Goto 0 直接放在 Exit 语句之前。这样做的意义何在?这似乎是多余的。当函数退出时,函数的错误处理程序无论如何都会关闭。

最佳答案

on error goto 0 off 当前范围内的错误处理并恢复到默认情况。

在这种情况下,过程希望错误处理程序在函数运行期间处于事件状态,但希望它在退出时关闭。正如您所说,在这种情况下没有必要,因为错误处理程序的范围是 {PROCEDURE_TYPE},所以它会在退出时恢复。

但有时,编码人员(尤其是那些生成模板的人员)喜欢自行清理,即使在技术上没有必要,例如在退出之前释放 C 程序中分配的内存。

这就是我怀疑的情况,它确实只是假设。

关于vb6 - "On Error Goto 0"退出函数前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395149/

相关文章:

jquery - 防止基于jquery中的全局错误提交

python - 如何在上下文管理器中捕获异常?

c - 通过指针访问结构的成员,导致错误

debugging - vb6 如何在 msgbox 中进入 Debug模式

c++ - 将 ISO C++ 类公开给 VB6 应用程序

sql-server - 访问不同 Active Directory 服务器中的数据库

vb.net - Visual Basic 6.0 到 VB.NET 声明

symfony - 如何在Symfony 4中正确声明类?

php - Yii 1.1自定义错误处理我的 Controller

c++ - 如何在不终止主应用程序的情况下卸载 ActiveX 的 ocx 以允许覆盖 ocx?