Каково имя собственное для того, чтобы сделать отладку путем добавления положений 'печати'

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

33
задан Andrew Grimm 1 December 2010 в 23:05
поделиться

17 ответов

Да - это известно как printf() отладка, названный в честь повсеместной функции C:

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

-- printf () debugging@everything2

Собственные пользователи других языков несомненно обращаются к нему печатью по умолчанию / журнал / или прослеживают команду, доступную для их предпочтительной платформы кодирования, но я услышал "printf ()" имя, привыкшее к refere к этой технике на многих языках кроме C. Возможно, это происходит из-за его истории: в то время как ОСНОВНОЙ и ФОРТРАН имел основной, но пригодный к эксплуатации PRINT команды, C обычно требовали, чтобы немного больше работы отформатировало различные типы данных: printf() был (и часто все еще), безусловно самые удобные средства с этой целью, обеспечивая много встроенных параметров форматирования. Его кузен, fprintf(), берет другой параметр, поток для записи в: это позволило осторожному "отладчику" направлять диагностическую информацию к stderr (возможно самостоятельно перенаправленный к файлу журнала) при оставлении вывода программы неповрежденным.

Хотя часто смотрится сверху пользователями современного программного обеспечения отладки, printf () отладка продолжает оказываться необходимый: дико популярный инструмент FireBug для веб-браузера Firefox (и подобные инструменты, теперь доступные для других браузеров), создаются вокруг консоли, в которую сценарии веб-страницы могут зарегистрировать ошибки или сообщения диагностики, содержащие отформатированные данные.

57
ответ дан 27 November 2019 в 17:20
поделиться

Я всегда знал это термином 'быстрая-и-грязная отладка', или просто 'грязная отладка' короче говоря.

1
ответ дан 27 November 2019 в 17:20
поделиться

(Хороший вход невероятно ценен для отладки проблем в рабочих производственных системах. Много бесполезных подробных операторов печати не, но вход чего-то интересного, когда что-то важное или неожиданное произошло, невероятно важно. Если единственный способ, которым Вы знаете, как отладить проблемы, с отладчиком, Вы собираетесь оказаться во вполне трудном месте, когда сервис, который Вы создали, повреждается для некоторых Ваших пользователей, но Вы не можете воспроизвести проблему локально.)

1
ответ дан 27 November 2019 в 17:20
поделиться

подробная отладка!

1
ответ дан 27 November 2019 в 17:20
поделиться

Ручные утверждения? Фобия отладчика?

1
ответ дан 27 November 2019 в 17:20
поделиться

Классик, Отлаживающий

2
ответ дан 27 November 2019 в 17:20
поделиться

Кроме того, в.Net можно добавить отладочные операторы (я думаю, что это на самом деле - Отладка. WriteLine) для вывода к консоли. Эти statments только включены в сборки отладки - компилятор автоматически пропустит их, когда Вы сделаете сборку конечных версий.

2
ответ дан 27 November 2019 в 17:20
поделиться

Я обычно называю его трассировкой.

Примечание, что в Visual Studio можно установить точки останова, которые просто добавляют трассировку. Щелкните правой кнопкой по точке останова, выберите, "когда поражено..." и проверьте опцию "Print a message".

2
ответ дан 27 November 2019 в 17:20
поделиться

Я также услышал термин "MessageBox, отладив" от толпы VB для обращения к этому 'стилю' 'отладки'.

5
ответ дан 27 November 2019 в 17:20
поделиться

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

5
ответ дан 27 November 2019 в 17:20
поделиться

Место Ваших штанов, отлаживая :)

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

6
ответ дан 27 November 2019 в 17:20
поделиться

Я называю это "Привет, мама" программирование.

6
ответ дан 27 November 2019 в 17:20
поделиться

я и мои помощники команды, называющие его "Отлаживающий Oldschool".

6
ответ дан 27 November 2019 в 17:20
поделиться

Я называю его Трассировкой.

18
ответ дан 27 November 2019 в 17:20
поделиться

Я думал, что следующая кавычка будет кстати:

"Самое эффективное средство отладки является все еще осторожной мыслью, вместе с рассудительно помещенными операторами печати".

  • Brian Kernighan, "Unix для Новичков" (1979)
27
ответ дан 27 November 2019 в 17:20
поделиться

Я услышал, что это звонило Пещерный человек, Отлаживающий

36
ответ дан 27 November 2019 в 17:20
поделиться

Я встроенные системы часто единственный метод для оснащения кода. К сожалению, печать занимает время и производит поток в реальном времени системы. Так мы также инструмент через "трассировку", где информация о состоянии системы (функциональный выход записи и т.д.) записана во внутренний буфер, который будет выведен и проанализирован позже. Настоящие встроенные программисты могут отладить путем мигания светодиодом;)

4
ответ дан 27 November 2019 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: