Как хороший консультант, я говорю «все зависит».
В целом в Java у вас есть четкое представление о том, какими могут быть все возможные исключения в конкретном месте кода. Нередко можно увидеть, как кто-то использует
} catch (Exception e){
// log or stack trace
}
... в более или менее одноразовом коде. В целом, однако, вы не должны ловить исключение, которое вы не знаете, как с этим справиться. (Никогда, никогда , никогда , делайте catch (Exception x) ;
, т. Е. Просто выбросьте исключение. Никогда.)
Главное - спросить: «Что я могу с этим сделать?» Зачастую исключение из файла, не являющееся результатом, может быть обработано путем запроса у пользователя, куда ушел его файл. Исключение из архива сложнее обработать. Таким образом, вы можете захотеть иметь отдельное поведение.
С другой стороны, если это программа командной строки, вам может потребоваться только сообщение об ошибке в любом случае.
Еще один совет; не выводите трассировку стека в коде, обращенном к клиенту - код, который может увидеть не программист. Непрограммисты склонны смотреть на полноту трассировки стека и паники. Лучше перевести исключение в сообщение типа «Файл« имя файла »не найден». и, если вам действительно нужна трассировка стека, ose logging отправит ее на выход уровня отладки.