最近写C++程序时关于GetLastError的感悟。
2008-06-30 17:16
246 查看
最近学校课程设计,于是用C++的工厂模式来写。由于C++没有自动抛出异常,所以只能判断很多东西之后返回一个HRESULT(typedef long HRESULT),如果HRESULT为0则为正常,否则返回错误码。
这只是一个很平常的设计,但是带来的问题确实巨大的。比如很多东西,比如CreateNode(用于创建链表),其实如果错误返回一个NULL就可以了。但是这样错误码就没法带出了。这时候我们其实可以设计一个公有类,用于返回错误代码。这就是微软为什么有些函数用HRESULT返回,有些一定要用GetLastError()才能得到的原因。
由于很少写C++,所以这次的课程设计很失败……特写此篇文章,特此勉励自己,希望这个暑假可以好好的学习和深入研究C++。
这只是一个很平常的设计,但是带来的问题确实巨大的。比如很多东西,比如CreateNode(用于创建链表),其实如果错误返回一个NULL就可以了。但是这样错误码就没法带出了。这时候我们其实可以设计一个公有类,用于返回错误代码。这就是微软为什么有些函数用HRESULT返回,有些一定要用GetLastError()才能得到的原因。
由于很少写C++,所以这次的课程设计很失败……特写此篇文章,特此勉励自己,希望这个暑假可以好好的学习和深入研究C++。
相关文章推荐
- 关于 WinHttpWriteData 出错 GetLastError() 值为 87(ERROR_INVALID_PARAMETER)
- Deviceiocontrol操作异常时,关于getlasterror的错误代码解析
- WinSocket套接字关于Connect函数通过GetLastError 返回10038或者(在一个非套接字上尝试了一个操作)
- 关于MFC中GetLastError函数返回值的含义(仅供参考)
- 关于GetPrivateProfileString出错 last error 坑人
- 关于SetFileTime参数设置错误(GetLastError() = 87)
- 关于virtualbox不能为虚拟电脑启动一个新任务报错 GetLastError=1790(其他错误id也可以一试)的问题
- 关于WriteProcessMemory 错误 GetLastError = 299
- win32 中GetLastError 关于code与信息
- 关于UpdateLayeredWindow调用失败返回0但是Getlasterror为0的问题
- 使用FormatMessage功得到GetLastError得到的错误信息
- GetLastError返回值的意义----适用在eVC和VC++
- Mongodb写入安全机制--GetLastError
- GetLastError返回代码的含义
- LoadLibrary(Ex)失败,GetLastError返回127 (找不到指定的程序)
- GetLastError 使用介绍
- GetLastError()函数返回值及含义
- c++学习之:根据GetLastError()返回值获取错误信息
- GetLastError详解
- 获取 GetLastError 文本信息