我有一个在WPF应用程序中使用的混合C ++ dll(my.dll)。
dll的C ++代码可能会引发一些法律问题'保护异常(如前置条件和后置条件),不应该使应用程序崩溃。
当在C ++应用程序中使用my.dll时,会捕获异常并继续运行应用程序。
当my.dll是在WPF应用程序中使用的异常在System.Runtime.InteropServices.SEHException
中转换,使用以下代码捕获:
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(GlobalExceptionHandler);
static void GlobalExceptionHandler(object sender, UnhandledExceptionEventArgs args)
{
Exception e = (Exception)args.ExceptionObject;
// ...
}
但是(可能因为args.IsTerminating
为真)应用程序退出。
如何在不退出应用程序的情况下处理SEHException
?