我正在编写一个定制的C++ WinRT组件库,以供第三方使用。我无法确定从我的库中报告/传播运行时错误条件的“最佳实践”是什么。
我找到了这篇文章,其中详细介绍了通过HRESULTs:https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/error-handling处理异常和跨越WinRT ABI的最佳实践。
但是,我不清楚如何处理自定义(异常)错误。我想遵循现代的c++实践并抛出std::runtime_errors,但WinRT文档说这是为将标准库错误映射到“E_FAIL”HRESULT而保留的。我是否应该遵循COM模型并实现自定义的HRESULT值,仅仅是为了抛出它们?
发布于 2018-12-24 10:55:05
只需抛出一个带有hresult代码和错误消息的winrt::hresult_error。你也可以抛出一个从它继承的异常。cppwinrt生成的代码会将您的异常转换为HRESULT。
https://stackoverflow.com/questions/53906604
复制相似问题