1. Баг
У програмістів є свій сленг, хоча багато хто вважає його технічним жаргоном. У будь‑якому разі вам не уникнути знайомства з ним і докладного вивчення. Тож почнімо розбиратися.
Одне з перших слів, з яким ви познайомитеся, — баг, від англійського bug (жук). Означає помилку в програмі: коли програма робить щось не те або не так, чи просто дивно працює.
Якщо ж розробник вважає, що програма працює дивно, але так і задумано, зазвичай кажуть: «це не баг, це фіча». Це породило чимало інтернет‑мемів.
Причина некоректної роботи може бути різною: помилка в логіці програми, описки в коді, невдала архітектура застосунку або навіть проблеми в компіляторі. У будь‑якому разі розробникам доводиться виправляти і справжні баги, й інші недоліки програми.
Історія слова bug
Найпоширеніша версія походження слова «баг» — ось така легенда.
У вересні 1947 року вчені Гарвардського університету тестували один із перших компʼютерів — Mark II. Компʼютер не працював, і під час перевірки плат вони знайшли метелика, що застряг між контактами електромеханічного реле.
Вилучену комаху приклеїли липкою стрічкою до технічного щоденника і підписали: «баг знайдено й усунено».
Вважають, що саме ця кумедна історія сприяла використанню слова баг для позначення помилки, а термін debug — синонімом усунення помилок.

2. Налагодження програми
Для усунення багів розробники використовують спеціальні програми — налагоджувачі (debugger). Деякі з них уміють налагоджувати навіть машинний код.
Java‑розробники налагоджують свої програми в IDE, наприклад, IntelliJ IDEA, Eclipse і NetBeans. IntelliJ IDEA нині вважають однією з найпотужніших IDE, тож розгляньмо процес налагодження на її прикладі.
IntelliJ IDEA може запустити вашу програму в двох режимах:
| Режими запуску програми | Піктограма на панелі | Гарячі клавіші |
|---|---|---|
| Звичайне виконання | |
Shift+F10 |
| Запуск у режимі налагодження | |
Shift+F9 |
Зі звичайним режимом ви вже знайомі: програма стартує, виконається й завершиться. А режим налагодження відкриває додаткові можливості для дослідження виконання програми.
Режим налагодження
Режим налагодження дає змогу виконувати програму покроково — точніше, построково: рядок за рядком. Ви можете спостерігати значення змінних на кожному кроці (після виконання кожного рядка коду) і навіть змінювати їх під час налагодження.
Щоб опанувати базові прийоми налагодження, потрібно розібратися з трьома речами:
- Точки зупинки
- Покрокове виконання
- Перегляд значень змінних
3. Точки зупинки (Breakpoints)
IDE дає змогу розміщувати в коді спеціальні мітки — точки зупинки (breakpoint). Щоразу, коли програма, запущена в режимі налагодження, доходитиме до рядка, позначеного як breakpoint, вона зупинятиметься.
Щоб встановити breakpoint на певному рядку, достатньо натиснути в IntelliJ IDEA ліворуч від цього рядка. Приклад:
У результаті рядок буде позначено точкою зупинки (breakpoint), і IntelliJ IDEA підсвітить його червоним кольором:
Повторне клацання мишею у панелі ліворуч від коду зніме встановлений breakpoint.
Також breakpoint можна встановити на поточному рядку за допомогою комбінації клавіш — Ctrl+F8. Повторне натискання Ctrl+F8 на рядку, де вже є breakpoint, видаляє його.
4. Запуск програми в режимі налагодження (debug)
Якщо у вашій програмі є бодай одна точка зупинки, ви можете запускати програму в режимі налагодження (Shift+F9 або «піктограма з жуком»).
Після запуску в режимі налагодження програма виконується як зазвичай. Але щойно вона дійде до рядка коду, позначеного breakpoint, вона зупиниться. Приклад:
У верхній частині знімка екрана ви бачите код програми з двома точками зупинки. Програма завмерла на рядку 5 — позначено синьою лінією. Рядок 5 ще не виконано: у консоль нічого не виведено.
У нижній частині екрана ви бачите панелі режиму налагодження: панель Debugger, панель Console (виведення на екран) та набір кнопок для керування налагодженням.
Щоб продовжити виконання програми, натисніть кнопку Resume Program на панелі внизу ліворуч (або клавішу F9).
Якщо натиснути цю кнопку (або F9), програма продовжить роботу, доки не зустріне наступну точку зупинки або не завершиться. Ось що ви побачите після натискання цієї кнопки:
Програма зупинилася на другій точці зупинки, а в консоль виведено слова Привіт і І — це ознака, що з трьох рядків виведення було виконано лише два.
5. Покрокове виконання
Якщо ваша програма працює в режимі налагодження, ви можете виконувати її покроково: один крок — один рядок. Для цього є дві гарячі клавіші: F7 і F8. Кожна з них дає змогу виконати поточний рядок коду. Але спершу потрібно зупинити програму за допомогою breakpoint.
Якщо ви хочете виконувати програму рядок за рядком, поставте breakpoint на початку методу main() і запустіть її в режимі налагодження.
Коли програма зупиниться, ви зможете почати її виконання рядок за рядком. Одне натискання клавіші F8 виконує один рядок.
Ось як виглядатиме програма після зупинки й одного натискання клавіші F8:
Перший рядок методу main уже виконався, і поточний рядок — другий. Ви також бачите в нижній частині знімка екрана, що на екран уже виведено слово Привіт.
6. Покрокове виконання із заходом у методи
Якщо у вашій програмі є власні методи і ви хочете, щоб під час налагодження програма заходила всередину цих методів, натискайте F7 замість F8.
Припустімо, ви покроково виконуєте програму і зараз зупинилися на 4‑му рядку. Якщо натиснете F8, IntelliJ IDEA просто виконає четвертий рядок і перейде до пʼятого.
А якщо натиснете F7, IntelliJ IDEA зайде всередину методу main2() і покроково виконає його тіло:
Якщо для вас не суттєво, що відбувається всередині методу, натискайте F8. Якщо важливо — натискайте F7, щоб покроково виконати весь код методу.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ