Я склонен сказать, что коды ошибок почти всегда плохая идея. Исключения обеспечивают разумную схему обработки ошибок по умолчанию: если вы не обрабатываете ее, вы фактически утверждаете, что это не может произойти в вашей ситуации. Если вы ошибаетесь, ваша программа дает сбой быстро и с четким сообщением об ошибке. Коды возврата не дают таких гарантий. Поведение по умолчанию здесь таково, что ошибка попадает под коврик, и программа продолжает работу, как будто ничего не произошло.
Исключения из этого правила:
- Если ошибка очень незначительная, то продолжение по умолчанию, как будто ничего не произошло, является лучшим значением по умолчанию, чем сбой.
- В средах с очень ограниченными ресурсами (т. Е. Не на серверах) исключения могут быть дорогими.