У меня дискуссия о том, как идти в новом проекте C ++. Я предпочитаю исключения перед кодами возврата (только для исключительных случаев) по следующим причинам -
- Конструкторы не могут дать код возврата
- Разъединяет путь отказа (который должен быть очень редким) из более чистого логического кода
- Быстрее в неисключительном случае (без проверки, если / иначе сотни тысяч раз)
- Если кто-то испортит настройки кода возврата (забудет вернуть FAIL), может потребоваться очень много времени для поиска.
- Лучшая информация из сообщения, содержащегося в ошибке. (Мне было указано, что возвращаемое перечисление может сделать то же самое для кодов ошибок)
- От Джареда Пар Невозможно игнорировать без кода, специально разработанного для его обработки
Это пункты, которые я придумал, подумав об этом, и из поисков в Google. Я должен признать, что был предрасположен к исключениям, работавшим в C # в течение последних нескольких лет. Пожалуйста, опишите дальнейшие причины использования исключений по кодам возврата. Для тех, кто предпочитает коды возврата, я также хотел бы выслушать ваши рассуждения. Спасибо