Debugging в переводе с английского означает «Отладка». Она необходима в программировании Java, чтоб отслеживать логические ошибки в коде. И инструменты NetBeans позволяют это сделать.

Логические ошибки - это ошибки программиста, когда код работает не так, как вы ожидали. Их может быть трудно отследить. К счастью, в NetBeans есть несколько встроенных инструментов, которые помогут вам найти решение этой проблемы.
Для начала изучите этот код:
package errors; public class ErrorsHand { public static void main(String[] args) { int LetterCount = 0; String check_word = "Debugging"; String single_letter = ""; int i; for (i = 0; i < check_word.length(); i++) { single_letter = check_word.substring(1, 1); if (single_letter.equals("g")) { LetterCount++; } } System.out.println("G было найдено " + LetterCount + " раз."); } }
Введите этот код либо в проект, который у вас уже есть, либо запустив новый. В этом коде мы пытаемся подсчитать, сколько раз встречается буква «g» в слове «Debugging». Ответ очевиден 3. Однако, когда вы запускаете программу, в окне «Вывод» выведется:
Итак, мы сделали где-то в нашем коде ошибку. Но где? Java-программа выполняется нормально и не выдает никаких исключений для изучения в окне вывода. Так что делать?
Чтобы отследить проблемы с вашим кодом, NetBeans позволяет вам добавить нечто, называемое точкой остановки (Breakpoint).
Чтоб добавить новую точку остановки, нажмите в поле нумерации строк в NetBeans окна кода напротив той строки, которую хотите проверить:
В меню NetBeans выберите Debug > Debug Имя Вашего Проекта:
NetBeans перейдет к точке остановки и строка станет зеленого цвета. Сейчас он остановил выполнение кода. Также вы должны увидеть новую панель инструментов:
Первые три кнопки позволяют остановить сеанс debugging, приостановить и продолжить. Следующие три кнопки позволяют перейти по коду для debugging, дальше четвертая - выйти и последняя - перейти к курсору.
Вы можете нажать клавишу F5 и продолжить. Код должен работать как обычно с точкой остановки. Сеанс debugging завершится.
Когда сеанс debugging завершится, нажмите на точку остановки, чтобы избавиться от нее. Теперь добавьте точку остановки в цикл for:
Теперь нажмите Debug > New Watch. Watch позволяет отслеживать, что находится в переменной. Введите букву i в диалоговом окне Watch и нажмите OK:
Добавьте еще один Watch и введите single_letter. Нажмите ОК. Добавьте третий Watch и введите LetterCount. Вы должны увидеть эти три переменные внизу экрана:
Теперь нажмите значок Step Into на панели инструментов:
Или просто нажмите клавишу F7 на клавиатуре. Продолжайте нажимать F7 и наблюдайте, что происходит в окне Watch.
Вы обнаружите, что переменная i каждый раз увеличивается на 1. Но две остальные переменные остаются прежними:
Поскольку в переменной single_letter ничего нет, то LetterCount не может выходить за пределы нуля. Итак, мы нашли нашу проблему - использование substring является неправильным, так как оно не захватывает символы, указанные в круглых скобках.
Остановите сеанс debugging и измените строку с substring следующим образом:
single_letter = check_word.substring(i, i + 1);
Теперь снова запустите сеанс debugging. Продолжайте нажимать клавишу F7, чтобы пройти по каждой строке цикла for. На этот раз вы должны увидеть изменения переменных sinle_letter и LetterCount.
Запустите Java-программу, и вы увидите в окне «Вывод»:
Теперь у нас правильный ответ.
То есть, если ваш код работает не так, как планировалось, попробуйте установить точку остановки и несколько Watches для своих переменных. И начните сеанс debugging.
В следующем разделе мы рассмотрим совсем другую тему: как открывать текстовые файлы в Java.