Я продолжаю слышать, что
catch (Exception ex)
Плохая практика, однако, я часто использую ее в обработчиках событий, где операция может, например, перейти в сеть, что позволяет использовать много разных типов сбоев. В этом случае я улавлю все исключения и покажу сообщение об ошибке пользователю в окне сообщения.
Это считается плохой практикой? Там ничего больше я могу сделать за исключением: Я не хочу, чтобы остановить приложение, пользователь должен знать, что произошло, и я на самом верхнем уровне моего кода. Что еще я должен делать?
EDIT:
Люди говорят, что я должен просмотреть стек вызовов и обрабатывать ошибки конкретно, потому что, например, исключение StackOverflow нельзя обрабатывать осмысленно. Однако остановка процесса - это результат худший, я хочу предотвратить это любой ценой. Если я не могу справиться с StackOverflow, так что это - результат будет не хуже, чем не ловить исключения на всех, и в 99% случаев, информирующее пользователя является наименее плохой вариант, насколько я понимаю
Кроме того, несмотря на все мои усилия по разработке всех возможных исключений, которые могут быть выбраны, в большой базе кода, вероятно, я пропустил бы некоторые из них. И для большинства из них лучшая защита по-прежнему должна информировать пользователя.