c++ - 使用回调函数传递异常
问题描述
首先,我无法访问“现代”功能,例如std::future
和std::async
。我想异步执行操作。结果在回调中给出。如果操作因异常而失败,我想将其作为std::optional
参数传递,以供处理程序检查。这被认为是不好的做法和危险吗?
void
doOperation(std::function<void(SomeClass*, std::optional<std::exception>)> doneHandler)
{
try
{
auto result = doStuff();
doneHandler(result, cpp17::nullopt_t);
}
catch (const std::exception& e)
{
doneHandler(nullptr, e);
}
}
解决方案
推荐阅读
- r - R if/else 在函数中
- windows-10 - Windows 10 上奇怪的 UDP 问题
- ruby-on-rails - Rails - 测试作用域destroy_all忽略作用域
- wordpress - WordPress REST API - 超过 10 个帖子
- java - 使用不同于默认的事务隔离创建休眠事务
- react-native - undefined 不是函数(评估 '_reactNativeNavigation2.default.startTabBasedApp') startTabs StartMainTabs.js
- html - 如何去除图片下方的空白?
- ruby-on-rails - Rails 使用类方法打印 JSON
- c++ - C++ 预处理器:测试类是否存在
- realm - 领域通知导致异常:对象已被删除或无效