LINUX.ORG.RU

История изменений

Исправление Kroz, (текущая версия) :

1. Полностью отказаться от исключений не получится, так как на них завязана стандартная библиотека C++.

2. За перформансом в 99% случаев гоняются диванные теоретики. Но если очень хочется... В сравнении с if (...), когда исключения/ошибки не возникает, то код с исключениями быстрее. В случае возникновения исключения/ошибки, код с исключениями медленнее. Пруф. Далее можешь посчитать как часто у тебя будет код идти по exceptional ветке. И, да, как заметили выше, счет на наносекунды, именно поэтому я написал про теоретиков.

3. Я не видел пока программ без исключений, которые бы обрабатывали все возможные «исключительные» ситуации в вызываемых ими функциях. То есть код с исключениями безопасней, чем без них, при учете человеческого фактора. Disclamer: при нормальной реализации RAII.

4. Есть ситуации, когда без исключений никак или с жуткими костылями; например, конструкторы, перегруженные операторы и др.

То есть программировать на С++ без исключений как минимум глупо.

А чтобы от исключений не было мучительно больно, обязательно к просмотру Jon Kalb: Exception-Safe Coding in C++ part 1, part 2.

/thread

Исходная версия Kroz, :

1. Полностью отказаться от исключений не получится, так как на них завязана стандартная библиотека C++.

2. За перформансом в 99% случаев гоняются диванные теоретики. Но если очень хочется... В сравнении с if (...), когда исключения/ошибки не возникает, то код с исключениями быстрее. В случае возникновения исключения/ошибки, код с исключениями медленнее. Пруф. Далее можешь посчитать как часто у тебя будет код идти по exceptional ветке.

3. Я не видел пока программ без исключений, которые бы обрабатывали все возможные «исключительные» ситуации в вызываемых ими функциях. То есть код с исключениями безопасней, чем без них, при учете человеческого фактора. Disclamer: при нормальной реализации RAII.

4. Есть ситуации, когда без исключений никак или с жуткими костылями; например, конструкторы, перегруженные операторы и др.

То есть программировать на С++ без исключений как минимум глупо.

А чтобы от исключений не было мучительно больно, обязательно к просмотру Jon Kalb: Exception-Safe Coding in C++ part 1, part 2.

/thread