〰️
Programming with Java
  • Програмиране с JAVA
  • Обектно-ориентирано програмиране - 1 част
    • Лабораторно упражнение 1
      • Основи на програмирането с Java за начинаещи‎
        • Oбщи термини в Java
        • Основни характеристики на JAVA‎
        • Инсталиране на JDK
        • Инсталиране на Intellij
      • Първа програма в Java
      • Системен изход в JAVA
      • Дефиниране на променливи
      • Примитивни типове данни
      • Оператори
      • If-else
      • Switch-Case
      • For loop
      • While loop
      • Do-while loop
      • Continue
      • Break
      • Задачи
    • Лабораторно упражнение 2
      • Клас
      • Обект
      • Ключова дума new
      • Запазена дума static
      • Конвенции за именуване в Java
      • Wrapper Class
      • Сравняване на
      • Нуждата Wrapper Class
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 3
      • Наследяване
      • this и super
      • Модификатори за достъп
      • Капсулиране
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 4
      • Проследяване на грешки
      • Оценяване на изрази
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 5
      • Полиморфизъм
      • Абстрактен клас
      • Интерфейс
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 6
      • Разлика между Абстрактен клас и Интерфейс
        • Разлика 1
        • Разлика 2
        • Разлика 3
        • Разлика 4
        • Разлика 5
        • Разлика 6
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 7
      • String
      • Enum
      • Обработка на изключения
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 8
      • Генерични класове
      • Генеричен метод
      • Параметри на типа в Java Generics
      • Предимства на генериците
      • Генериците работят само с референтни типове
    • Лабораторно упражнение 9
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 10
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 11
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 12
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 13
      • Упражнения за извънаудиторна заетост
      • Упражнения за извънаудиторна заетост
  • Обектно-ориентирано програмиране - 2 част
    • Лабораторно упражнение 1
      • SRP - Single Responsibility Principle
        • Задачи
      • OCP - Open-Closed Principle
        • Задачи
    • Лабораторно упражнение 2
      • LSP - Liskov Substitution Principle
        • Задачи
      • ISP - Interface Segregation Principle
        • Задачи
      • DI - Dependency Inversion Principle
        • Задачи
    • Лабораторно упражнение 3
      • Singleton
        • Задачи
      • Builder
        • Задачи
    • Лабораторно упражнение 4
      • Factory Method
      • Abstract Factory
      • Задачи
    • Лабораторно упражнение 5
    • Лабораторно упражнение 6
      • Decorator
      • Bridge
        • Композиция
      • Задачи
    • Лабораторно упражнение 7
      • Adapter
      • Задачи
    • Лабораторно упражнение 8
      • Composite
      • Proxy
      • Задачи
    • Лабораторно упражнение 9
    • Лабораторно упражнение 10
      • Visitor
      • State
      • Задачи
    • Лабораторно упражнение 11
      • Observer
      • Задачи
    • Лабораторно упражнение 12
      • Chain of Responsibility
      • Command
      • Задачи
    • Лабораторно упражнение 13
  • Интернет технологии 2023
    • Лабораторно упражнение 1
      • HTTP протокол
        • Синтаксис на URL
        • HTTP съобщения
        • Методи за HTTP заявка
        • Кодове за състояние на HTTP отговор
      • Postman
        • Изпращане на заявка с Postman
        • Получаване на отговор
      • Задачи за работа с Postman
    • Лабораторно упражнение 2
      • Работа с Tomcat
      • Maven
      • Създаване на Maven проект в IntelliJ Ultimate Edition
      • Създаване на Maven проект в IntelliJ Community Edition
      • Създаване на Maven проект в Eclipse IDE
    • Лабораторно упражнение 3
      • Java Servlets
      • Жизнен цикъл на сървлета
      • Създаване на сървлети
      • Задачи за създаване на сървлети
    • Лабораторно упражнение 4
      • Extensible Markup Language
      • Java Architecture for XML Binding
      • JavaScript Object Notation
      • Задачи
    • Лабораторно упражнение 5
    • Лабораторно упражнение 6
      • Spring Boot
      • Създаване на Spring boot проект
      • Структура на Spring Boot проект
        • Файлът pom.xml
        • Main клас в Spring Boot
        • Управление на конфигурацията с application.properties
      • Задача
    • Лабораторно упражнение 7
      • Комуникационен поток и CRUD операции
      • ResponseEntity
      • Избрани анотации
      • Задача
    • Лабораторно упражнение 8
      • Lombok
      • Data transfer object (DTO)
      • Обработване на изключения в Spring Boot приложение
        • Клас Optional<T>
      • Валидиране на данните от заявката
      • Задачи
    • Лабораторно упражнение 9-10
      • Конфигуриране на PostgreSQL DB
      • Jakarta Persistence анотации
      • Repository слой
      • Задачи
    • Лабораторно упражнение 11
      • Проследяване на сесии
      • Филтри и FilterChain
      • Spring Security
        • Добавяне на Spring Security в Spring Boot приложение
        • Конфигуриране на филтри
        • Удостоверяване със Spring Security
        • Защита на метод със Spring Security
      • Задача
    • Лабораторно упражнение 12
      • JSON Web Token
      • Защита с помощта на JWT
      • Задача
    • Лабораторно упражнение 13
  • Програмиране за мобилни и Интернет устройства
    • Лабораторно упражнение 1
      • Задачи
    • Лабораторно упражнение 2
      • Среда за разработване
        • Създаване на проект
        • Структора на проект
        • Виртуално устройство с Android OS
      • Задача
    • Лабораторно упражнение 3
      • Activity
      • Layout
        • XML описание
      • Задача
    • Лабораторно упражнение 4
      • Activity Lifecycle
      • Intent
      • Слушатели на събитията и методи за обратно извикване
      • Задача
    • Лабораторно упражнение 5
      • Слушатели на събитията и методи за обратно извикване
      • Задача
    • Лабораторно упражнение 6
      • Фрагменти
      • DialogFragment
      • Задача
    • Лабораторно упражнение 7
      • Примери
        • BaseAdapter
        • ArrayAdapter
        • Custom ArrayAdapter
      • RecyclerView
        • Пример
      • CardView
      • Задача
    • Лабораторно упражнение 8
      • Runnable
      • HandlerThread
      • ThreadPoolExecutor
      • Задача
    • Лабораторно упражнение 9
      • Задача
      • Задача
      • Пример
  • Интернет Технологии
    • Лабораторно упражнение 1
      • Инсталиране и настройка на необходимата среда за работа в упражненията
      • Maven
      • Създаване на Maven проект в Eclipse IDE
      • Създаване на Maven проект в IntelliJ
      • Работа с Tomcat
      • Задача
    • Лабораторно упражнение 2
      • HTML форми
      • Cascading Style Sheets (CSS)
        • CSS селектори
        • Някои CSS свойства
      • Задача
    • Лабораторно упражнение 3
      • Java Servlets
      • Жизнен цикъл на сървлета
      • Създаване на сървлети
      • Задачи
    • Лабораторно упражнение 4
      • Java Server Pages технология. Същност и детайли
      • Пренасочване между Servlet и JSP
      • Задачи
    • Лабораторно упражение 5
      • Build pattern
      • JavaBean
      • Задачи
    • Лабораторно упражение 6
      • Проследяване на сесии
      • Управление на бисквитки (Cookies)
      • Задачи
    • Лабораторно упражнение 7
      • Проследяване на сесии
      • Управление на бисквитки (Cookies)
      • Servlet Filter
      • Задачи
    • Лабораторно упражнение 8
      • Servlet Filter
      • Прихващане на грешки
      • Задачи
    • Лабораторно упражнение 9
      • Extensible Markup Language
      • JavaScript Object Notation
        • Fetch
      • Задача
    • Лабораторно упражнение 10
      • Java Architecture for XML Binding
      • Задачи
Powered by GitBook
On this page
  • Проследяване на грешки
  • Изпълнение на код в режим на отстраняване на грешки
  • Точки на прекъсване
  • Прозорец за отстраняване на грешки
  • Постъпково изпълнение на програмата
  • Поставяне на пауза, възобновяване и спиране на дебъгера

Was this helpful?

  1. Обектно-ориентирано програмиране - 1 част
  2. Лабораторно упражнение 4

Проследяване на грешки

PreviousЛабораторно упражнение 4NextОценяване на изрази

Last updated 2 years ago

Was this helpful?

Проследяване на грешки

Проследяването на грешки е процес на откриване и коригиране на грешки в програма.

Дебъгерът е мощен инструмент, който позволява бързо намиране на грешки, като дава представа за вътрешните операции на програмата. Това е възможно посредством спиране на изпълнението и анализиране на състоянието на програмата чрез задълбочено изследване на променливите и как те се променят ред по ред.

Изпълнение на код в режим на отстраняване на грешки

Има няколко начина за стартиране на програмата в режим за отстраняване на грешки:

  1. От менюто Run или като натиснете Shift + F9;

  2. От иконата Run в лентата с номерацията на редовете, като изберете опцията Debug;

  3. От контекстното меню

Можете да редактирате конфигурацията за изпълнение, за да добавите опции за виртуална машина или да подадете аргументи на програмата.

Точки на прекъсване

За да проверим как програмата работи по време на изпълнение, трябва да спрем нейното изпълнение преди заподозрения код. Това става чрез задаване на точки на прекъсване. Точките на прекъсване показват редовете от код, където програмата ще бъде спряна, за да можете да проверите нейното състояние.

За да зададете точка на прекъсване на даден ред, щракнете в областта на лентата с номерацията на редовете или използвайте клавишната комбинация Ctrl+F8 (Win/Linux), ⌘ F8 (macOS).

При натискане с десен бутон се отваря диалогов прозорец, където може да се зададе условиe кога да спре изпълнението на програмата. Ако условието върне true, избраното действие се изпълнява. В противен случай точката на прекъсване се игнорира.

Прозорец за отстраняване на грешки

Прозорецът за отстраняване на грешки показва важна информация, когато вашето приложение спре изпълнението на точка на прекъсване:

· Debugger - показва информация за изпълнение на програмата;

· Console - показва резултата от изпълнението на програмата;

· Frames - показва реда на изпълнение на командите;

· Variables - показва състоянието на обектите.

Постъпково изпълнение на програмата

Има различни начини за навигация в кода в режим на отстраняване на грешки. Например, може да предпочетете да изпълните ред код, без да се интересувате от подробностите на извикваните методи. Или може да предпочетете да видите кои редове код се изпълняват, когато извиквате друг метод от вашето приложение, библиотеки или API. Можете да направите това чрез различните стъпкови действия:

  • Step into (F7) – изпълнява текущия ред и ако той съдържа метод, влиза в него;

  • Step over (F8) – изпълнява текущия ред, но ако съдържа метод, не влиза в него;

  • Force Step Into – позволява да дебъгвате методи, дефинирани в API или библиотеки;

  • Step out (Shift - F7) – излиза от текущия метод;

  • Drop Frame – позволява да се върнете назад през изпълнението на код, като изпуснете извикване на метод;

  • Run to cursor (Alt+F9) – изпълнението на програмата продължава, докато не се достигне реда, на който е позициониран курсора.

Поставяне на пауза, възобновяване и спиране на дебъгера

Ако изглежда, че приложението ви не реагира, можете да поставите програмата на пауза, за да анализирате къде е блокирал кодът ви.

В прозореца за отстраняване на грешки щракнете върху Пауза на програмата и прозорецът на редактора ще покаже класа и метода, които приложението ви изпълнява в момента – или е блокирано.

Можете да възобновите изпълнението на програмата, като щракнете върху Възобновяване на програмата или като използвате клавишната комбинация F9. За да рестартирате програмата в режим на отстраняване на грешки, изберете Повторно изпълнение. Можете да спрете отстраняването на грешки във вашата програма по всяко време, като използвате иконата Stop .

конфигурация за изпълнение