【发布时间】:2017-05-28 20:36:40
【问题描述】:
在自学编程几年后,我即将创建我的第一个真正的 C++ 应用程序(一个 2D 游戏)。我遇到的问题是很多时候教程经常跳过正确的错误处理技术(或做最低限度的)。为了尝试了解错误处理的工作原理,我首先尝试了解 C 错误代码和errno 及其优缺点。在此之后,我查看了 C++11 的 std::error_code/std::error_condition,但我无法理解它们的重要性以及对 errno 之类的改进。究竟是什么让std::error_code 比errno 有所改进?
【问题讨论】:
-
请注意:您是否已经在使用异常?
-
由于可能的运行时开销和我的单线程游戏对性能的需求,我试图避开它们。
-
std::error_code更安全。 -
“由于可能的运行时开销,我试图回避它们” - 与检查每个函数的返回值的明确运行时开销相比?
-
@Jason 关于例外的底线:它们不在任何一种你会在第一场比赛中担心的方式上都不会太贵。 “手动内存管理”部分让我相信你已经被不了解 C++ 的庸医警告过,因为我们不手动管理我们的内存。只要您正确使用智能指针和 RAII,基本的异常安全(无资源泄漏)就内置在语言中。您可能根本不需要游戏的强大异常安全性。
标签: c++ error-handling errno