Если код регистрации приложения всегда находится в блоке catch - PullRequest
2 голосов
/ 09 августа 2011

Должен ли код регистрации приложения всегда находиться в блоке catch? Например, лучше проверить, является ли объект пустым в блоке try, и если это так, регистрировать исключение или перехватывать исключение нулевой ссылки и регистрировать ошибку (предупреждение)

Ответы [ 5 ]

4 голосов
/ 09 августа 2011
  • Лучше всего сначала * предотвратить исключение, чем обрабатывать его после факта.
  • Если нулевая ссылка является реальной возможностью, код должен уже проверятьсядля и соответствующим образом обработайте это.
  • Ведение журнала должно быть как можно дальше от обработки исключений.На самом деле, вам нужно регистрироваться как можно больше, а затем позволить вашему регистратору приложений решить, что на самом деле важно.(Используйте уровни ошибок - информация, предупреждение, ошибка) Так что да, ваши catch блоки должны регистрироваться, но это определенно не должно быть единственным местом, где вы ведете запись.

* Я уверен, что естьнекоторый крайний случай, когда это не так, но это довольно редко.

2 голосов
/ 09 августа 2011

Всегда хорошо иметь журналы, которые помогут вам понять, что происходит, как ведет себя приложение, осуществлять надлежащее отслеживание, мониторинг и т. Д. ... но где его получить, я думаю, это зависит от вашего приложения и контекста,Конечно, подробности исключения должны быть зарегистрированы, чтобы вы могли проверить, что происходит, но войти в блок catch в блоке finally или где-то еще, это зависит от вашего кода.

1 голос
/ 09 августа 2011

Всегда - сильное слово, код регистрации должен быть там, где это необходимо.В большинстве случаев существуют категории журналирования.

**INFO**: General application information 
**DEBUG**: Information that may be helpful if trying to debug using the log.
**ERROR**: Error information.

Я уверен, что есть и другие категории, однако, как вы можете видеть, в случае этих 3 журналирование ОШИБКИ, вероятно, будет только в блоке перехвата, гдетак как остальные 2 действительно могут быть где угодно.

0 голосов
/ 09 августа 2011

Я думаю, что ведение журнала - это междисциплинарная проблема, поэтому я бы остановился на ней. Чем больше блоков catch у вас есть, тем больше кода регистрации вы должны написать. Если вы можете объединить рекомендации в исключения, вы можете написать этот код регистрации один раз и хранить его в одном месте.

0 голосов
/ 09 августа 2011

Лучше делать это в блоке catch, даже если только на основе читаемости. Всегда лучше отделить обработку ошибок от вашего другого кода.

...