Должен ли я распечатать трассировку стека исключений? - PullRequest
3 голосов
/ 22 октября 2008

Насколько неэффективно получать трассировку стека для исключения? Я знаю, что это дорого, но как дорого? Должны ли они не использоваться в производственной среде?

Ответы [ 5 ]

13 голосов
/ 22 октября 2008

В производственной среде полезно записать трассировку стека, чтобы пользователь мог найти ее при обращении в службу технической поддержки. Следует избегать печати трассировки стека вместо понятного (для обычного пользователя) сообщения.

Вы не должны беспокоиться об эффективности исключительных блоков кода. Восстановление после ошибок - самая важная вещь здесь.

5 голосов
/ 22 октября 2008

Мой вопрос: почему вы заботитесь о производительности, когда что-то неожиданно пошло не так? На данный момент разумность вашего приложения под вопросом, так кого это волнует, если это быстро?

5 голосов
/ 22 октября 2008

Если на вашем критическом пути есть исключения, у вас уже есть проблемы с производительностью. Получение трассировки стека для отслеживания исключения является критическим , IMO.

1 голос
/ 22 октября 2008

Точка векселей действительно точная на деньги, и я добавил комментарий, но хотел добавить и здесь ответ.

В производственной среде, на общедоступном сайте, я НИКОГДА не печатал бы трассировку стека пользователю. В зависимости от характера возникших ошибок трассировка стека может содержать информацию, которая может утечь защищенную информацию (имена баз данных и т. Д.)

Это же правило относится и к сообщениям об ошибках.

0 голосов
/ 22 октября 2008

Обычно я печатаю или сохраняю трассировку стека только в том случае, если знаю, что она может происходить в той части системы, которая сильно зависит от других частей или других систем. Это особенно верно для компонентов, ответственных за интеграцию, поскольку ошибка может быть прерывистой и сильно зависеть от состояния среды.

...