在我自己教授如何编程之后,我即将创建我的第一个真正的C ++应用程序(2D游戏)。我遇到的问题很多时候教程经常跳过正确的错误处理技术(或者做到最低限度)。为了尝试学习错误处理的工作方式,我首先尝试了解C错误代码和errno
及其优缺点。在此之后,我查看了C ++ 11的std::error_code
/ std::error_condition
,但我很难理解它们对errno之类的重要性和改进。究竟是什么使std::error_code
比errno
改进了?
答案 0 :(得分:0)
std::error_code
可以为errno提供额外的改进,您可以将其转换为您自己的错误。
看一下https://www.youtube.com/watch?v=w7ZVbw2X-tE,我相信你会对error_code更加明智。
关于exeptions的主题,请确保你正确对待它们。在嵌入式系统中,您通常无法承受异常,因为您不知道将花费多少时间,并且它们将占用更多空间。然而,在游戏中,AAA游戏公司确实不使用例外,但是为了做到这一点,他们编写了自己的特殊容器(参见例如EASTL和WG21-SG14库和讨论)。 如果您正在编写第一个游戏,请使用标准方法,包括例外,因为您将无法编写自己的内容。如果抛出异常并且您没有抓住它,您的程序将终止并继续学习。
确保自学如何编写现代 C ++,至少使用C ++ 14及其提供的功能,这将减少您的内存安全和脱发问题;)