c++错误代码传播
c++ error codes propagation
我在c++中处理一个遗留代码,该代码使用错误代码而不是异常。
在这种情况下,fn A()调用B(),后者调用C()等
现在,如果C()返回错误,我希望在B()本身退出,而不必将其传递回A()并让A()处理错误。然而,很少有其他团队成员拥有最顶级的功能来处理错误。现在哪一个会好?
同样在后一种情况下,由于我们没有足够早地退出,所以恰好有多个返回语句。不,我听说函数中应该避免多次返回。如果我避免返回,那么就有嵌套的If要处理。
我认为应该尽可能在本地处理错误。也就是说,如果一个类的方法有足够的知识来处理错误,它应该这样做。但是,如果处理错误的方法是退出程序,我认为这个标准不适用。在这种情况下,你应该像@Als所说的那样,分阶段返回,并有一个单一的退出点。在其他情况下,请尽可能在本地处理错误。
然而,很少有其他团队成员拥有最强大的功能来处理错误。现在哪一个会好?
这取决于,比如说,当它调用的函数失败时,是否需要对每个函数进行一些清理,这样你可能希望以分阶段的方式返回。
通常要避免多次返回,因为这会降低源代码的可读性,使其难以理解。作为个人选择,我喜欢让我的功能只有一个入口点和一个出口点。
您不能同时满足"错误代码传播"answers"仅返回一次",至少不能干净。选择一个并接受它。
事实上,我收回了。可以两者都有,但必须使用goto
。这就是Linux内核处理其错误返回的方式。
相关文章:
- 错误处理.将系统错误代码映射到泛型
- 为什么我在使用void函数时得到错误代码C2276
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- 逻辑运算符上出现错误代码 a')'
- 'val' Arduino 错误代码之前的预期'('
- 我在贪吃蛇游戏中收到了错误代码 -1073741571
- 根据 GetLastError 直接写入磁盘会导致错误代码 5
- 当我选择大于 720 的矩阵大小时,程序退出并显示错误代码.可能是什么原因?
- 创建进程 API 失败,在窗口 122 上出现错误代码 10
- 使用另一个函数调用一个函数(都在类中)时出现问题.没有错误代码C++
- 当命令失败时,gzip 会在 C++ 中返回错误代码吗?
- 从 C++ 调用 cURL 命令会返回意外的错误代码,如 1792 和 6656
- WSALookupServiceBegin() 上的错误代码 10022(无效的 arugment)
- C++ Schannel POST 400 错误代码错误请求
- openCL-创建子缓冲区返回错误代码13
- 更新了Runge-Kutta(RK4)C++错误代码中的二阶DE
- 获取有关使用未初始化内存的错误代码
- 排序程序的意外错误代码
- 正在将DJI错误代码记录到流中
- c++错误代码传播