Один пример того, где я считал бы это приемлемым, находится в некотором некритическом модуле важного приложения (скажите в звуковом модуле обратной связи системы навигации шаттла), для исключений, которых никогда не должно происходить, и не может быть обработан более чисто.
В тех случаях, Вы не хотели бы позволять тому исключению распространить и заставить целое приложение перестать работать (Жаль парни, больше системы навигации, наш подающий звуковой сигнал модуль, разрушенный, и не было действительно ничего, что мы могли делать с этим).
Отредактированный, чтобы сказать, что в любом из этих случаев, Вы, по крайней мере, хотели бы зарегистрировать событие где-нибудь.
Создайте пузырек исключения для КЛИЕНТА и обработайте его там. Обязательно передайте его во всех подробностях. Большинство лучших практик почти полностью соглашаются с этим, всегда в конце концов обрабатываются по периметру, в данном случае КЛИЕНТ, хотя в других случаях это может быть веб-сервис.
Ловите только если вы хотите журнал это, добавьте дополнительную информацию или попробуйте восстановить из определенного исключения. В каждом случае вы либо создадите новое исключение с оригиналом как внутреннее, либо просто «выбросите» оригинал как есть, и, как указано в комментариях, не «бросайте ex»
Этот вопрос является рядом duplicate , и вы найдете множество существующих вопросов по SO с очень хорошими ответами.
Если метод не может выполнить свою работу, он должен вызвать исключение. Никогда не возвращать исключение в результате.
Вам следует начать читать Руководство по разработке исключений
Затем, в зависимости от вашего сценария, вы должны принять во внимание другие соображения, такие как экранирование исключений.
Например: Если вы используете веб-сервисы (ASMX или WCF) в качестве серверной части, вы можете взглянуть на Повышение безопасности веб-сервисов и прочитать части, касающиеся обработки исключений.
Отличный вопрос!
Не используйте код исключения. По большей части делают вид, что их никогда не было. Меня беспокоит исключение в двух случаях: отображение обратной связи об ошибке для пользователя и управление ресурсами (т.е. закрытие открытого файла при возникновении исключения).
Подход, который рекомендуется и считается наилучшей практикой, заключается в использовании исключений. Вы можете (и должны) прочитать Framework Design Guidelines (2nd Ed.) , в котором есть рекомендации по исключениям и шаблону try-parse.
Есть несколько проблем с использованием кодов возврата (числовых или логическое значение), два из них:
Что касается того, когда обрабатывать исключения, вы должны обрабатывать их только тогда, когда вы можете сделать что-то значимое с исключением. Проблема с постоянной обработкой исключений, чтобы клиент никогда их не видел, заключается в том, что вы можете обработать исключение, которое вам не следует '