Существует lot материал вне там, который предполагает, что печать трассировки стека исключений - это плохая практика.
например. из проверки RegexpSingleline в Checkstyle:
Эта проверка может использоваться [...], чтобы найти распространенную плохую практику, такую как вызов ex.printStacktrace()
Тем не менее, я изо всех сил стараюсь найти где угодно, что дает вескую причину, потому что, конечно, трассировка стека очень полезна для отслеживания того, что вызвало исключение. Вещи, о которых я знаю:
-
Трассировка стека никогда не должна быть видимой для конечных пользователей (для пользователей и целей безопасности)
-
Создание трассировки стека - относительно дорогостоящий процесс (хотя вряд ли это будет проблемой в большинстве "исключительных" обстоятельств)
-
Многие фреймворки протоколирования распечатывают трассировку стека (у нас нет и нет, мы не можем легко ее изменить)
-
Печать трассировки стека не является обработкой ошибок. Он должен сочетаться с другим ведением информации и обработкой исключений.
Какие еще есть причины избежать печати трассировки стека в вашем коде?