Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
6年前关闭。
Improve this question
假设我具有以下功能:
我可以将返回值更改为
我的问题是:
返回 和哪种方法更安全?
我应该使用第二种还是完全取决于我的喜好?
编辑:我并不是严格说使用
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
6年前关闭。
Improve this question
假设我具有以下功能:
unsigned char *f(unsigned char*, int, int, long, const char*);
我可以将返回值更改为
HRESULT
(或我自己定义的),但是我必须更改函数中的整个代码。或者我可以简单地使用throw
指出错误。我的问题是:
HRESULT
有什么优点/缺点? throw
有哪些优点/缺点? 我应该使用第二种还是完全取决于我的喜好?
编辑:我并不是严格说使用
HRESULT
。您可以为错误处理定义自己的枚举,使其独立于Windows 最佳答案
我要说的是,在处理C++中的错误时,您应该始终求助于异常。让我们看看为什么在您的情况下有更好的选择。
First HRESULT
是Windows操作系统中使用的数据类型,它立即使您的代码在Linux平台上不可移植。
第二,首先涵盖所有其他方面。
为什么异常比错误代码更好?
1)异常将错误流与正常流分开,这很难通过错误代码获得。
2)有时没有合理的错误代码可以发送给 call 者。
3)如果您使用错误代码,则检查可用性部门是否正常/错误退出的责任更大。但是,未捕获的异常会使您的程序死机。
这些只是使用异常而不是错误代码的好处。
关于c++ - 抛出或返回错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27481979/
10-17 02:48