【发布时间】:2010-12-26 00:25:19
【问题描述】:
情况如下:线程A捕获异常,将异常的数据保存在内存中的某个位置(使用异常过滤器中的GetExceptionInformation),然后线程B获取该异常信息并想重新抛出它。但问题是,当线程 B 重新抛出捕获的异常时,我错过了导致异常的原始调用堆栈。
如何在不丢失原始调用堆栈的情况下重新引发异常? (注意这个问题是关于 C++ 的)。
【问题讨论】:
-
只是想确保我没有得到特定于 C# 的答案 :)
-
一些解决方案绝对是特定于语言/平台的。 C++ 和 C# 异常确实不同,C++ 异常在不同平台上的实现方式也不同。
-
这个stack overflow thread中描述了一个很好的解决方案
-
stackoverflow post 中描述的解决方案可能对您的需求非常有用。
标签: c++ windows exception exception-handling