【发布时间】:2011-02-21 00:18:46
【问题描述】:
在编写 Win32 C++ 代码时,我希望能得到一些关于如何处理 Win32 API 错误的提示。
尤其是在 Win32 函数调用失败的情况下(例如 MapViewOfFile),最好是:
定义一个派生自 std::exception 的 Win32Exception 类,并添加一个 HRESULT 数据成员来存储与 GetLastError 返回的值对应的 HRESULT?
在后一种情况下,我可以使用 what() 方法返回详细的错误字符串(例如“MapViewOfFile 在 MyClass::DoSomething() 方法中调用失败。”)。
1 与 2 的优缺点是什么?
还有其他更好的选择吗?
附带说明,如果我想本地化我正在开发的组件,我如何本地化异常 what() 字符串?我正在考虑构建一个表,将 what() 返回的原始英文字符串映射到 Unicode 本地化错误字符串。有人可以提出更好的方法吗?
非常感谢您的见解和建议。
【问题讨论】:
标签: c++ winapi error-handling exception