gpt4 book ai didi

dll - VB 6.0 DLL 中的错误处理

转载 作者:行者123 更新时间:2023-12-02 01:48:07 25 4
gpt4 key购买 nike

我正在编写一个 DLL,用于自动执行 Excel。我想建立一个广泛的错误处理模块。我想不通的是如何在出现错误时退出整个 DLL。我不能在 DLL 中使用 End 语句。 Application.Quit 也什么都不做。

如果我在一个低级别的 sub 中,我运行一个错误处理程序然后退出 Sub,它会上升到另一个级别等。在 .NET 中有“异常(exception)”。 VB 6.0 中有类似的东西吗?

谢谢。

最佳答案

虽然 Plutonix 所说的是正确的,但您也可以使用与异常处理更相似的东西。您可以创建自己的 vbObjectError 并通过错误处理机制将其提升到调用堆栈。

首先,在你的脑海中制造一些错误。最佳做法是使用添加了 vbObjectError(一个非常大的负数)的数字,以免与 native VB 错误发生冲突。然后,做这样的事情:

Public Sub MySub()
On Error Goto errHandle
'do stuff
Exit Sub
errHandle:
Select Case Err.Number - vbObjectError
Case 1
'Do This
Case 2
'Do That
Case 1000
Err.Raise 1000 + vbObjectError, "Fatal Error, Really we Gotta Leave", _
"My DLL"
End Select
End Sub

因此,我认为您在这一切中遗漏的一点是,如果您在错误处理程序中引发错误,它会在调用过程中重新引发。如果您在所有错误处理程序中像这样不断重新引发“退出错误”,错误将在调用堆栈中冒泡并最终到达您的客户端过程,即实例化您的 DLL 对象的过程。那时,您将退出 DLL 对象。在您的客户端对象的错误处理程序中,您可以根据需要清理对象引用等。

关于dll - VB 6.0 DLL 中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24293809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com