gpt4 book ai didi

dll - VB6 调试 - 不转到错误处理代码

转载 作者:行者123 更新时间:2023-12-02 08:55:33 25 4
gpt4 key购买 nike

我正在维护一个 vb6 项目(ActiveX DLL)。调试时,应用程序运行到以下函数:

Public Function HasValue(ByVal vValue) As Boolean

On Error GoTo Err

If IsMissing(vValue) Then
HasValue = False
ElseIf IsNull(vValue) Or Len(vValue) = 0 Then
HasValue = False
ElseIf isEmpty(vValue) Then
HasValue = False
Else
HasValue = True
End If

Exit Function

Err:

If IsArray(vValue) Or IsObject(vValue) Then
HasValue = True
Else
HasValue = False
End If
End Function

它停在该行

ElseIf IsNull(vValue) 或 Len(vValue) = 0 则

vValue是一个自定义对象,包含一些属性(显然,不为空)。

虽然我没有在那里放置任何断点,但应用程序在那里停止并警告错误对话框,指出“运行时错误'438':对象不支持此属性或方法”。

我们有错误处理代码,但应用程序没有运行到错误处理代码。它只是停在导致错误的行处,我不得不停止应用程序。

你对此有什么想法吗?非常感谢。

最佳答案

至于在调试器中运行弹出窗口,它可能与 IDE 中的“错误捕获”设置有关。转到“工具”->“选项”->“常规”,查看“错误捕获”下选择的内容。乍一看,错误处理程序在发生错误时测试 vValue 似乎很奇怪。基于我对这种方法的有限理解,将 IsArray 和 IsObject 条件移至主要测试逻辑中对我来说更有意义。只是我的 2 美分:)

关于dll - VB6 调试 - 不转到错误处理代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5215781/

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