Во время обзора кода с сотрудником Microsoft мы столкнулись с большой частью кода внутри блока try{}
. Она и ИТ-представитель предположили, что это может повлиять на производительность кода. Фактически, они предположили, что большая часть кода должна быть вне блоков try/catch и что необходимо проверять только важные разделы. Сотрудник Microsoft добавил и сказал, что предстоящий белый документ предупреждает о неправильных блоках try/catch.
Я огляделся и обнаружил, что может повлиять на оптимизацию, но, похоже, применяется только тогда, когда переменная распределяется между областями.
Я не спрашиваю о ремонтопригодности кода или даже обработке правильных исключений (этот код нуждается в повторном факторинге, без сомнения). Я также не имею в виду использование исключений для управления потоком, это явно неправильно в большинстве случаев. Это важные проблемы (некоторые из них важнее), но не здесь.
Как блоки try/catch влияют на производительность, если исключения не выбрасываются?
EDIT: Я добавляю щедрость. Есть интересные ответы, но я хотел бы получить еще несколько данных.