如果捕获一般异常,是否可能出现异常冒泡?

时间:2012-06-23 17:57:42

标签: c# c++ .net

假设我们有一个非托管C ++应用程序调用的C#。来电者的密码不可用。

public void MethodCalledByUnmanagedCode()
{
try
{
   DoWork()
}
catch {}//assume we swallow exception, no logging or anything
}

在这种情况下,在任何情况下,是否有可能使任何异常冒泡到非托管C ++?

2 个答案:

答案 0 :(得分:4)

您的代码可能会引发ThreadAbortException

  

ThreadAbortException是一个可以捕获的特殊异常,但它会在catch块的末尾自动再次引发。

答案 1 :(得分:2)

在正常情况下,还有一些异常将永远不会出现像StackOverflowException这样的异常处理程序。

详见C# catch a stack overflow exception