我有一个读取文件的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
的正确方法是什么?