gpt4 book ai didi

vb6 - 如何将错误传递回调用函数?

转载 作者:行者123 更新时间:2023-12-03 08:14:57 25 4
gpt4 key购买 nike

VB6中将错误传递回调用函数的最佳方法是什么?

1    On Error Resume Next
2 ' do something
3 If Err.Number <> 3026 Or Err <> 0 Then ?????????

您如何将第3行中的错误发送回调用函数?以下是实现这一目标的唯一方法吗?
errNum = Err.Number
On Error Goto 0
Err.Raise errNum

最佳答案

使用On Error GoTo并使用Err.Raise重新引发处理程序中的错误。

Private Function DoSomething(ByVal Arg as String)

On Error GoTo Handler

Dim ThisVar as String
Dim ThatVar as Long

' Code here to implement DoSomething...

Exit Function

Handler:
Err.Raise Err.Number, , "MiscFunctions.DoSomething: " & Err.Description

End Function

然后,您可以通过 Err.NumberErr.Description在调用方中获取错误号和描述。

如果调用者也使用 On Error GoTo,则将在其中的处理程序中看到它们。

如果调用者正在使用 On Error Resume Next,那么您仍可以内联使用那些相同的变量。

我更喜欢第一种选择,在所有函数和子函数中都使用On Error Goto,因为这似乎是使用VB6内置错误生成功能的自然方式。您还可以像上面的示例一样在被调用函数的处理程序中更新描述,并获得一个伪调用堆栈,您最终可以在调试过程中登录或显示给自己。

更多VB6错误处理的想法在这里:

Is it possible to retrieve the call stack programmatically in VB6?

How to clean up error handling in a function?

关于vb6 - 如何将错误传递回调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14348215/

25 4 0