C ++ / winRT coroutine try / catch无效

时间:2017-04-18 15:55:02

标签: visual-c++ visual-studio-2017

我有一个读取文件的C ++ / winRT协程。以下'得到'文件:

StorageFile _fileDoubles = co_await _turboCalc.GetFileAsync(L"FileDoubles.dbo");

因文件存在而正确执行。如果我将其名称更改为不存在的文件,我的应用程序将失败,并显示以下错误消息:

  

IBuffer.exe中0x76903AC2抛出异常:Microsoft C ++异常:内存位置为0x02FBE338的winrt :: hresult_error。

如果我将其附在以下try / catch中,我的应用仍会失败并显示相同的错误消息。

try {
    StorageFile _fileDoubles = co_await_turboCalc.GetFileAsync(L"FileDoublesZZZ.dbo"); //doesn't exist
}
catch (hresult_error const & e) {
    printf("error: %ls\n", e.message().c_str());

}

在日常工作中使用try / catch的正确方法是什么?

0 个答案:

没有答案