Как правило, я бы сказал, что регистрируйте всю информацию, необходимую для воспроизведения хода событий, приводящих к ошибке . Обратите внимание, что вам не обязательно регистрировать все внутри блока catch
: вы можете помещать (отлаживать) операторы журнала в свой код, в вызываемые методы и т. Д., Которые позволяют вам следить за тем, что происходило непосредственно перед исключением. Кроме того, вы должны поместить в само исключение информацию о точном симптоме, который его вызвал.
ИМХО прохождение всего кода для добавления операторов журнала везде может быть излишним - или, по крайней мере, неэффективным в реальном проекте. Вместо этого сосредоточьтесь на наиболее важных частях кода , чтобы максимизировать отдачу от ваших усилий. Эти части кода, как правило, являются местом, где происходит большинство ошибок и / или большинство изменений (будет сделано). Поэтому на практике всякий раз, когда вам нужно прикоснуться к куску кода, подумайте о ведении журнала, проверьте уже присутствующие там операторы журнала (если они есть), проверьте обработку исключений (если есть) - я обычно вижу не только код, подобный вашему примеру, который просто проглатывает перехваченное исключение, но даже пустые или автоматически сгенерированные catch
блоки в нашем устаревшем коде ... все это может оставить приложение в неопределенном состоянии, что является ПЛОХОЙ вещью), и подумать, достаточно ли того, что уже есть для вас, чтобы воспроизвести ошибки и понять, что произошло, если произошла ошибка. Затем улучшите его настолько, насколько вам нужно, и можете с разумными усилиями.
Это также помогает обсудить эту тему с вашими товарищами по команде и попытаться выработать примерное соглашение по проекту о том, как регистрировать события, как обрабатывать исключения и т. Д. Это может сэкономить вам много времени, потраченное в противном случае в погоне за ошибками и / или улучшением кода, созданного вашими коллегами: - (