Я собираюсь создать свое первое настоящее приложение на C ++ (2D-игру) после пары лет обучения самому программированию. Проблема, с которой я сталкиваюсь, состоит в том, что учебники часто пропускают правильные методы обработки ошибок (или делают минимум). Чтобы попытаться узнать, как работает обработка ошибок, я начал с попытки понять коды ошибок C и errno
и их преимущества / недостатки. После этого я посмотрел на C ++ 11 std::error_code
/std::error_condition
Но у меня проблемы с пониманием их значимости и улучшения по сравнению с чем-то вроде ошибки. Что именно делает что-то вроде std::error_code
улучшение по сравнению с errno
?
std::error_code
может допустить ошибку с добавленным улучшением, что вы можете преобразовать его в ваши собственные ошибки.
Взгляни на https://www.youtube.com/watch?v=w7ZVbw2X-tE и я уверен, что вы будете намного мудрее с кодом ошибки.
Что касается исключений, убедитесь, что вы относитесь к ним правильно. Во встроенных системах вы обычно не можете позволить себе исключения, потому что вы не знаете Сколько Время они займут, и они займут больше места. В играх, однако, верно, что игровые компании AAA не используют исключения, но для этого они пишут свои собственные специальные контейнеры (см., Например, библиотеки EASTL и WG21-SG14 и обсуждения).
Если вы пишете свою первую игру, используйте стандартные методы, включая исключения, потому что вы не сможете писать свои собственные вещи. Если выдается исключение, и вы его не перехватываете, ваша программа завершается, и начинается обучение.
Обязательно научите себя писать современный C ++, используя как минимум C ++ 14 и предоставляемые функции, это уменьшит ваши проблемы с безопасностью памяти и выпадением волос;)
Других решений пока нет …