Можно создать дубликат:
Performance Cost Of 'try'Неужели .NET попробовать/поймать дешево?
Я наткнулся на это замечание в "Best Practices для обработки исключений," в MSDN:
"с помощью обработки исключений лучше, потому что меньше кода выполненных в нормальном случае "
в контексте того, следует ли требовать eck для состояния объекта перед вызовом метода или просто вызвать метод и поймать исключение. Вышеуказанная рекомендация - это когда событие исключения встречается редко.
Предполагая, что проверка собственности не предполагает дорогостоящего расчета, а просто возвращает значение состояния, насколько дешево стоимость выполнения блока try/catch в случае не бросания по сравнению с проверкой свойства?
Меня интересует рекомендация, потому что даже если try/catch свободен или свободен, вызываемый метод во многих случаях выполняет кучу проверок самим.
Но даже если попытка/улов свободна, рекомендуется ли это использовать, а не проверять состояние? – Holstebroe
Вы должны принять разумные меры, чтобы исключить возможность возникновения исключения по возможности; Я думаю, это может зависеть от того, как часто вы ожидаете «исключения». Если это может быть несколько распространено, сначала выполните тест. Если это будет очень редко, пусть исключение будет выброшено. –