Всем тем, кто ставит под сомнение необходимость поймать все исключения ...
Существует лот уважительных причин для перехвата всех исключений:
- кто-то упомянул об отображении диалогового окна в приложении с графическим интерфейсом, рассказывающего о проблеме
- Обработка ошибок в стороннем API, который вам действительно нужен
- работа над ошибками в некоторых реализациях JVM
- Самовосстанавливающееся программное обеспечение.
- автоматическая онлайн-отчетность об исключениях.
Обратите внимание, что сама Java перехватывает все исключения в EDT (Thread Dispatch Thread) и порождает новый EDT после смерти EDT. Вы можете считать это формой "самовосстановления" программного обеспечения. Умирание EDT не является чем-то неслыханным и точно не препятствует правильной работе приложений (наоборот). (и да, у Swing и AWT довольно много ошибок, просто взгляните на парад ошибок Sun;)
Можно утверждать, что любое уважающее себя программное обеспечение должно фактически учитывать случай непредвиденного исключения (все ли программное обеспечение, которое вы поставляете, на 100% без ошибок и никогда не получает новые выпуски, выпуски с исправлением ошибок?) И что-то делает умный, когда такое непредвиденное исключение случается.
«Что-то умное» может препятствовать сбою программного обеспечения (как в случае EDT), предупреждать пользователя, отправлять отчет и т. Д.
Ответы на вопрос о необходимости сделать что-то или предположить, что это плохая практика, если ИМХО будет изменено.