0

我很好奇为什么在执行下面的代码时没有捕获到 ExecutionEngineException。

try                            
{
   ((Window)window).Close();
}
catch (Exception e)
{
   Console.WriteLine(e);
}

永远不会到达 WriteLine。任何想法如何捕捉这个异常?

注意:我知道当 DockablePanes 之一处于 AutoHide 模式、可见并且用户试图关闭 wpf 窗口时,AvalonDock 会引发异常。

更新:我已阅读msdn 上有关此异常的备注部分:

CLR 永远不会以托管代码可以捕获它的方式抛出此异常。

所以问题是如何在这样的事情之后很好地关闭应用程序。

4

2 回答 2

2

ExecutionEngineException表示您不应尝试从中恢复或处理的致命错误。你需要在问题发生之前从根源上解决这个问题,而不是试图优雅地处理它。

既然您说您已经知道问题的根源,您应该采取措施防止应用程序达到强制抛出致命异常的状态。

于 2011-02-17T10:40:00.510 回答
0

考虑向[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions()]执行代码的方法添加属性。

于 2011-07-18T10:23:30.897 回答