在我的 C++ 应用程序中,我使用了一个 activeX 组件,它运行自己的线程(或几个我不知道的线程)。有时这个组件会抛出异常。我想捕获这些异常并进行恢复,而不是让我的整个应用程序崩溃。但由于我无权访问其源代码或线程,我不确定如何完成。
我能想到的唯一解决方案是在它自己的进程中运行它。使用诸如 CreateProcess 然后是 CreateRemoteThread 之类的东西,不确定它是如何实现的。
关于如何解决这个问题有什么建议吗?
最佳答案
如果 ActiveX 组件启动自己的线程,那么您无能为力。您可以设置一个全局异常处理程序并尝试吞下异常,但这很可能会导致您的程序状态被破坏并导致奇怪的“不可能”崩溃。
在单独的进程中运行错误组件是最可靠的解决方案,因为您将能够识别 fatal error 并从中恢复,而不会影响您自己的程序状态。
关于c++ - 捕获不可见线程的未处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029860/