Я изучаю Java около месяца и не очень хорошо знаком с ситуацией клиент / сервер, подобной этой.
В основном я столкнулся с ситуацией, когда наше клиентское программное обеспечение Java (GUI) отображало всплывающее окно с нулевым указателем, но не было трассировки стека на стороне клиента. Кто-то должен был проверить серверную часть на предмет трассировки стека.
У меня вопрос: не должна ли клиентская сторона тоже получать эту ценную информацию? Нормальны ли подобные ситуации, если причина в том, что нужна только одна копия трассировки стека?




Не совсем. Не рекомендуется показывать клиенту, как работает ваше приложение сзади. В основном из соображений безопасности. Ваша трассировка стека показывает все вызываемые объекты, методы и даже строки, если они скомпилированы с отладочной информацией. Это слишком много информации для клиента, это нормально, если она будет на сервере.
Это среди SQL-инъекций, кросс-сторонних скриптов и других, которые я не могу вспомнить, неправильная обработка исключений является уязвимостью безопасности.
Обновлено: Вот и другие уязвимости (хотя я не вижу этой в списке :()
Клиенту нужно знать только то, что ему нужно знать. Во многих случаях совершенно нормально не показывать трассировки стека на вашем клиенте. Ваши пользователи должны получать четкие сообщения об ошибках, но не заботятся о трассировке стека.
Для целей отладки трассировка стека в любом случае обычно теряется, приложение выдает ошибки, пользователи перезапускают его и исчезают любые исключения, поэтому, если вам нужно знать ошибки, используйте структуру ведения журнала.