gpt4 book ai didi

c++ - 如何处理异步函数中的异常 UWP App GetFileFromPathAsync(path);

转载 作者:太空宇宙 更新时间:2023-11-04 12:59:34 28 4
gpt4 key购买 nike

此代码在抛出时不会捕获 AccessDeniedException。

为什么?

没有任何异常处理程序会捕获它。我完全遵循了文档。

auto fileOp = StorageFile::GetFileFromPathAsync(filePath);
auto fileTask = create_task(fileOp);
auto c1 = fileTask.then([](StorageFile^ file) {
//...
}).then([](task<StorageFile^> t) {
try {
auto ident = t.get();
}
catch (const std::exception &e) {
auto msg = ref new MessageDialog("File not found.");
}
catch (AccessDeniedException^ e) {
auto msg = ref new MessageDialog("Access denied.");
}
catch (Exception^ e) {
auto msg = ref new MessageDialog("Unknown errer.");
}
});

最佳答案

要处理在GetFileFromPathAsync方法中抛出的异常,您可以尝试使用以下代码:

auto fileOp = StorageFile::GetFileFromPathAsync(filePath);
auto fileTask = create_task(fileOp);
auto c1 = fileTask.then([](task<StorageFile^> t) {
try
{
StorageFile^ file = t.get();
///...
}
catch (AccessDeniedException^)
{
auto msg = ref new MessageDialog("Access denied.");
create_task(msg->ShowAsync());
}
catch (Exception^ e) {
auto msg = ref new MessageDialog(e->Message);
create_task(msg->ShowAsync());
}
});

关于c++ - 如何处理异步函数中的异常 UWP App GetFileFromPathAsync(path);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44832792/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com