2010-09-07 4 views
3

В ASP.NET мне хотелось бы получить ваше мнение относительно наилучшего способа обработки исключений.Рекомендации по производительности try/catch blocks

  • Вы бы предложили использовать блоки try/catch?
  • Лучше использовать блоки try/catch для каждой отдельной части кода/компонента? Или в каких ситуациях?

Я очень ценю вашу помощь благодаря!

+0

Возможный дубликат [try catch performance] (http://stackoverflow.com/questions/1350264/try-catch-performance) –

ответ

5

Вы должны обязательно не обернуть каждую часть кода в блоки try/catch. Вы должны улавливать исключения, которые вы можете обрабатывать в любой момент. Все другие исключения должны разрешаться для распространения.

Одним из преимуществ исключений является то, что вам не нужно обрабатывать каждую ошибку локально. Используя try/catch повсюду, вы активно работаете против этой концепции.

+0

благодарит за ваш ответ! – GibboK

1

Используйте попытку, наконец, в любое время, когда у вас есть ресурсы, такие как соединения, которые необходимо очистить. Но использовать try catch ТОЛЬКО, если вы действительно можете что-то сделать об исключении. В противном случае пусть это пузырится вверх по стеку и поймать его в глобальном asax, чтобы вы могли терпеть неудачу изящно.

+0

Нет. Не используйте исключения для очистки ресурсов. Используйте инструкцию «using». – jgauffin

-1

Попробуйте сохранить блоки try/catch до минимума, поскольку они создают служебные накладные расходы. Используйте только try/catch/finally, когда вы можете безопасно исправлять состояние приложения, когда произошло исключение (например, закрытие соединений и т. Д.).

+0

Использование блоков 'try ... catch' не создает значительных накладных расходов; бросание исключений делает. – LukeH

+0

Какая стоимость? http://www.programmersheaven.com/user/pheaven/blog/175-Do-trycatch-blocks-hurt-runtime-performance/ –

0

Throw Меньшее Исключения: Вы могли бы хотеть прочитать StackOverflow thread

0

бросание исключения это лучший способ узнать, где приложение будет неправильно.

В качестве примечания, которое наиболее раздражает разработчик, поддерживающий большую систему, пытается понять, почему что-то не падает, но не работает правильно, и это потому, что кто-то поймал ошибку где-то в бизнес-процессе и просто сделал код go ssshhhhh.

Смежные вопросы