如果VB6应用程序中发生运行时错误,这是否意味着已关闭错误处理?

如果VB6应用程序中发生运行时错误,这是否意味着已关闭错误处理?,vb6,error-handling,runtime-error,Vb6,Error Handling,Runtime Error,如果VB6应用程序中发生运行时错误,这是否意味着已使用On error Goto 0语句关闭了错误处理 这个假设可以成立吗?或者是否存在可能发生运行时错误的其他情况 如果一个错误已经由Resume Next或Goto处理,那么肯定不会发生运行时错误。True还是False?之所以出现这种情况,是因为执行代码(包括调用过程)中没有错误处理程序。您不能假设在发生错误时使用了Goto 0 我假设您指的是未处理的运行时错误。由于未经处理,应用程序将异常结束 Visual Basic概念、错误处理层次结构

如果VB6应用程序中发生运行时错误,这是否意味着已使用On error Goto 0语句关闭了错误处理

这个假设可以成立吗?或者是否存在可能发生运行时错误的其他情况


如果一个错误已经由Resume Next或Goto处理,那么肯定不会发生运行时错误。True还是False?

之所以出现这种情况,是因为执行代码(包括调用过程)中没有错误处理程序。您不能假设在发生错误时使用了Goto 0

我假设您指的是未处理的运行时错误。由于未经处理,应用程序将异常结束

Visual Basic概念、错误处理层次结构、

如果错误已由以下任一方处理: 接下来是一份简历,或者是一个后起之秀 不会发生运行时错误。符合事实的 还是假的

错。有时错误处理程序中会出现运行时错误。如果错误处理逻辑忽略了这一点,您将得到一个未处理的运行时错误

更多信息 简单地说,使用On Error Goto 0将删除过程中禁用或关闭的任何错误处理程序,直到过程结束,或者使用On Error语句之一指定错误处理程序。在您定义错误处理程序之前,没有错误处理代码的用户界面事件也不会有错误处理程序

错误捕获
在调试期间,您可以指定错误捕获,这会导致VBE在所有错误、类模块内或未处理的错误上中断。在运行时期间,该行为发生在未处理的错误上。如果Visual Basic运行时库找不到错误处理程序,则会发生运行时错误。。如果正在进行故障排除/调试,请尝试将错误捕获设置为在所有错误上中断。这将导致VBE在出现错误时中断,您可以在此处开始调试或继续执行。

如果您试图解决问题,我建议使用调试器再现错误消息,然后暂停代码执行并查看错误发生的位置。检查调用堆栈,查看变量值,并找出错误是如何发生的

如果可能,请使用VB6 IDE。 如果在使用VB6 IDE时没有出现问题,例如免费的Visual Studio 2008 Express Edition。
有几种情况下可能会发生错误。例如,您可以执行一个代码行来触发一个事件并立即进行处理,如果事件处理程序没有错误处理,那么事件处理程序可能会遇到错误。此外,有时在执行任何代码之前,应用程序启动时可能会显示VB6运行时错误

当你说假的时候。有时错误处理程序中会发生运行时错误,这不是一个未处理错误的示例,这意味着问题的答案是正确的吗?我理解这个问题的意思是,一旦在错误处理程序中,运行时错误就不会发生,因为我已经在错误处理程序中。如果是这样,那么答案是错误的。如果错误处理程序中发生错误,则下一个错误处理程序是,链将处理此较新的错误。如果没有启用错误处理程序,则会出现未经处理的运行时错误。客户正在报告运行时错误,但我无法在IDE中重现该错误。我唯一的选择就是加入错误处理。@Craig这是一个选择。另一个是添加一些日志来跟踪错误行。如果您可以访问用户的计算机,另一种方法是使用免费的调试器,如WinDbg或Visual Studio Express Edition。您可能可以使用远程协助或类似的方法记录错误行的唯一方法是添加行号。有第三方实用程序可以做到这一点,但我不建议这样做。@Craig Johnston:当试图再现错误时,您是以用户、超级用户还是管理员的身份运行的?我建议限制您的权限,然后进行测试。@AMissic,@Craig我正在考虑登录到外部日志。档案。只需发送一些消息,如到达点A或启动例程B。请用户重现错误。查看消息以找出错误的大致区域。添加更多消息以更详细地跟踪。重复此操作,直到您知道确切的线路错误是什么?从MarkJ的反应来看,他绝对是个经验丰富的人。也许在我们三人之间,如果我们知道错误,什么时候可以提出更好的建议。