在C ++ / CX中捕获未处理的异常

时间:2014-01-22 04:18:18

标签: windows-phone-8 windows-phone

是否可以在C ++ / CX中捕获unhandle异常?我发现如果在C ++ / CX中发生崩溃,我的应用程序将立即终止(Application_UnhandledException不会被调用)。更重要的是,我发现Win32 api SetUnhandledExceptionFilter是不可用的,它是用于捕获未处理异常的Windows API。

1 个答案:

答案 0 :(得分:0)

如果 exception 是指结构化异常,您可能应该使用__try,例如像这样的东西(下面未经测试的代码):

__try
{
    someCode();
}
__except( EXCEPTION_EXECUTE_HANDLER )
{
    throw Platform::Exception::CreateException( ... );
}

或者,如果您正在尝试处理C ++异常,例如来自STL的异常,那么您应该使用try-catch语句捕获它们,然后抛出Platform::Exception - 这样它们将被正确编组回到托管代码。