Программная инженерия Дмитриев Андрей Владиславович
Часть 3. Отладка программы Наглядность программного вывода. Обработка ошибок. Отслеживание состояний программы. Стек вызовов. Профилирование. Журнализация java.util.logging. Отладчик.
Наглядность вывода Object.toString() вызывается при использовании объекта в строковом контексте.
Вывод обычного объекта class Point { int x, y; } Point p = new Point(10, 20); System.out.println(p); Вывод:
Вывод модифицированного объекта class Point { int x, y; public String toString(){ return Point[+x+,+y+]; } Point p = new Point(10, 20); System.out.println(p); Вывод: Point[10, 20]
Обработка исключений См. презентацию Exception.
Обработка исключений Каждый блок catch() не рекомендуется оставлять пустым, а снабжать каким-либо действием, заметным для пользователя.
Состояние программы Добавление отладочной печати допустимо только в случаях, когда есть возможность пересобрать программу. Хорошо написанная программа предоставляет файл записей с событиями программы. Анализ такого файла позволяет найти ошибку в программе.
Журнализация Запуск программы с активированной журнализацией позволяет выводить информацию о состоянии программы вовне. Указание файла конфигурации для отладочной печати: -Djava.util.logging.config.file=custom.logging Пример файла конфигурации находится в каталоге: $JAVA_HOME/lib/logging.properties См. презентацию «Журнализация».
Стек вызовов Статический метод java.lang.Thread.dumpStack() позволяет распечатать путь, по которому интерпретатор Java достиг данного оператора. См. другие методы класса java.lang.Thread.
Профилирование JVM поддерживает механизм профилирования, активизируемый ключами –XXrunhprof и -Xhprof. Созданный файл содержит: Последовательность снимков состояний VM, Стеки вызовов, Итоговое число объектов.
Отладчик Хорошая среда разработки предоставляет возможности отладчика: Останавливаться в указанных строках кода. Отслеживать значения переменных. Передвигаться по коду. Переходить по меткам.
Выводы Отладка приложения проводится на всех этапах разработки системы. Современные среды разработки предоставляют широкий спектр возможностей по отладке приложений.
Ссылки и литература
Q&A
Дмитриев Андрей Владиславович Спасибо!