Error handling 处理从ActiveX EXE引发的错误

Error handling 处理从ActiveX EXE引发的错误,error-handling,vb6,runtime-error,activex,com-interop,Error Handling,Vb6,Runtime Error,Activex,Com Interop,我是一个遗留VB6项目的支持团队成员,该项目涉及套接字通信。 我们在错误处理方面遇到了一个问题 以下是此应用程序的组件 主要过程 Activex Exe进程 主进程创建activex类对象,调用函数并使用这些对象中的事件(如套接字连接、读取等)。 主流程表单模块在所有函数中都有错误处理程序 主进程错误处理程序执行以下操作: 文件中的日志错误 向用户显示Msgbox(vbcritical样式) 在ActiveX exe类中,所有函数都有错误处理程序 ActiveX进程错误处理程序执行以下操作

我是一个遗留VB6项目的支持团队成员,该项目涉及套接字通信。 我们在错误处理方面遇到了一个问题

以下是此应用程序的组件

  • 主要过程

  • Activex Exe进程

主进程创建activex类对象,调用函数并使用这些对象中的事件(如套接字连接、读取等)。 主流程表单模块在所有函数中都有错误处理程序

主进程错误处理程序执行以下操作:

  • 文件中的日志错误

  • 向用户显示Msgbox(vbcritical样式)

  • 在ActiveX exe类中,所有函数都有错误处理程序 ActiveX进程错误处理程序执行以下操作

  • 文件中的日志错误

  • 使用错误提升时出现错误。提升

  • 我们观察到,当从主进程调用ActiveX类的函数时,ActiveX exe函数中出现错误,ActiveX exe将显示运行时错误消息,ActiveX进程终止,即使 错误处理程序位于主进程函数中


    错误处理程序设计中是否有错误,或者一个进程中的错误处理程序无法捕获另一个进程中引发的错误?

    您是否能够在调试器中运行这两个组件并跟踪/设置断点,并准确查看发生了什么情况?一种猜测是,在其中一个错误处理程序中引发了第二个错误。错误处理程序处理非致命错误。@UuDdLrLrSs,我在调试(主项目和ActiveX项目)中观察到)…ActiveX中的错误处理程序记录了错误,当它达到Err.Raise时,我期望主项目模块函数(调用此ActiveX类函数)将捕获此错误,但未发生…将显示运行时错误消息。ActiveX exe是非常特殊的动物。只有当您真正了解它们的用例时,才应该使用它们。您希望错误处理的工作方式(让标准exe捕捉错误)您需要将ActiveX exe更改为ActiveX dll。您是否能够在调试器和步骤跟踪/设置断点中运行这两个组件,并查看到底发生了什么?一个猜测是,在其中一个错误处理程序中引发了第二个错误。错误处理程序处理非致命错误。@UudlRLRSS,我在调试中观察到(主项目和ActiveX项目)…ActiveX中的错误处理程序记录了错误,当它达到Err.Raise时,我期望主项目模块函数(它调用此ActiveX类函数)将捕获此错误,但它没有发生…将显示一条运行时错误消息。ActiveX exe是非常特殊的动物。只有在您真正了解它们的用例时,才应使用它们。要使错误处理正常工作(让标准exe捕获错误),您需要将ActiveX exe更改为ActiveX dll。