为什么noexcept不用于异步库(如Asio和Beast)

时间:2018-02-15 13:04:56

标签: c++ boost boost-asio asio boost-beast

异步函数通常不使用异常。

即使在同步调用中,Asio和Boost-Beast也有重载,它接受CoreData: annotation: Failed to load optimized model at path '/var/containers/Bundle/Application/80A98E72-4896-4D03-B2CF-5DEB9B9970CD/Map.app/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo' CoreData: annotation: Failed to load optimized model at path '/var/containers/Bundle/Application/80A98E72-4896-4D03-B2CF-5DEB9B9970CD/Map.app/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo' CoreData: annotation: Failed to load optimized model at path '/var/containers/Bundle/Application/80A98E72-4896-4D03-B2CF-5DEB9B9970CD/Map.app/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo' 类型的输出参数而不是抛出。

异步操作不能抛出异常,因为操作未在调用代码¹的堆栈帧中完成。

是否存在技术原因导致这些未声明为system_error&

除了可能的性能优势外,我还认为它可以作为用户的提示,因为用户知道他们不需要异常处理。

¹从技术上讲,它们可能会抛出异常检查或无效参数等异常

0 个答案:

没有答案