Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ПОА_2005_Builder.doc
Скачиваний:
6
Добавлен:
03.05.2019
Размер:
1.26 Mб
Скачать

Действия в случае ошибки выполнения

Щелкнув на кнопке убедимся что приложение работает Однако при повторном щелчке выполнение прерывается Щелкнув по закладке Unit1.cpp увидим окно с сообщением отладчика которое после перевода выглядит так: “Проект Project1.exe вызвал генерацию исключения класса EOverflow с сообщением ‘Переполнение при операции с плавающей запятой’. Процесс остановлен Используйте команды Step или Run для продолжения”.

Это сообщение об ошибке приведшей к генерации исключения Исключения (exceptions) генерируются при различных ошибках – исключительных ситуациях

Щелкнув на кнопке OK попадем в окно Редактора Кода и увидим в нем код программы с выделенной строкой около которой стоит зеленая стрелка Это тот оператор при выполнении которого произошла ошибка

Дальнейшие действия

  1. Нажав Ctrl-F2, прерывают выполнение и отладку приложения Так поступают в случае когда понятно где ошибка и как ее исправить Если же ошибка непонятна то прежде чем прервать сеанс работы с приложением надо получить дополнительную информацию о состоянии переменных те провести отладку

  1. Можно выполнить команду Запуск|Запустить (или нажать соответствующую быструю кнопку или клавишу F9) чтобы попытаться несмотря на ошибку продолжить вычисления При этом появится окно с сообщением о виде ошибки (“Floating point overflow”) после закрытия которого можно продолжить работу с приложением Но это ничего не даст так как при очередном щелчке на кнопке ситуация с ошибкой повторится

  2. Можно пройти часть программы по шагам (см далее) Однако предварительно нужно получить соответствующую информацию Итак если ошибка неясна, надо получить информацию о происходящих в приложении процессах приведших к ошибке Простейший способ – воспользоваться Мастером оценки выражений Подведем курсор мыши к имени переменной например A, и увидим текст: “A=1E+308”. Так можно узнать значения переменных программы в данный момент

Окно наблюдения Список Часов

Это окно позволяет иметь значения нескольких переменных сразу и сравнивать их, что удобно при отладке сложных приложений. Чтобы сделать окно видимым, нужно выполнить команду Вид|Windows отладки|Часы или подвести курсор к требуемой переменной (или выделить ее) и нажать Ctrl-F5. При этом окно наблюдения автоматически откроется и в нем появится имя переменной и ее значение (значение переменной появится только при остановке выполнения приложения и переходе в ИСР C++Builder). Можно выделить выражение, например, Label1->Caption, нажать Ctrl-F5, и в окне появится это выражение. Сообщение “Undefined symbolLabel1’” – не определен символ ‘Label1’ объясняется тем, что для окна наблюдения компонент Label1 по умолчанию не считается принадлежащим текущей форме. Добавив Form1-> перед Label1 в обработчике, после нажатия Ctrl-F5 в окне наблюдения увидим выражение и его значение.

Работа с окном наблюдения. Перейдя в него, после щелчка правой кнопкой во всплывшем меню можно выбрать ряд команд. При выборе команд Правка часов и Добавить часы, попадаем в окно Свойства часов. По-другому – в окне наблюдения нажать Ctrl-F5 или сделать двойной щелчок. В окне Выражение можно записать имя любой переменной или любое выражение, содержащее переменные, константы, функции. Окно Повтор счета используется при наблюдении массивов и позволяет задать число наблюдаемых элементов массива. Например, если в окне Выражение указать имя массива, то в окне наблюдений будут отображаться все элементы этого массива. Если же указать первый элемент массива (с индексом 0), а в окне Повтор счета написать 5, то в окне наблюдений будут отображаться только первые 5 элементов массива. Окно Цифр указывает число выводимых значащих разрядов чисел с плавающей запятой. Окно Включить позволяет отключить вывод в окно наблюдения соответствующего выражения во время выполнения приложения, что повышает производительность выполнения. А после того, как приложение остановлено и данное выражение нужно посмотреть в окне наблюдения, выражение выделяют в этом окне и делают на нем двойной щелчок. Откроется окно Свойства часов с загруженным в него выражением и останется только включить индикатор Включить и щелкнуть OK. Индикатор Позволить побочный разрешает или запрещает отображение таких выражений, которые способны вызвать побочные эффекты. Например, в окне Выражение записано ++A. Если индикатор Позволить побочный выключен (он выключен по умолчанию), то в окне наблюдений рядом с выражением ++A появится текст: “Side effects are not allowed.” (побочные эффекты запрещены). Очевидно, если отображать указанное выражение, то значение переменной A в программе изменится. Отображение значения, на единицу большего A, будет иметь место при включении индикатора Позволить побочный. Но следует учесть, что это будет изменять значение переменной A. Радиокнопки в нижней части окна Свойства часов задают формат вывода значения переменной или выражения. По умолчанию формат определяется автоматически по типу отображаемого выражения. Выпадающий список в окне Выражение позволяет выбрать выражение из использовавшихся ранее. В окне Свойства часов имеется выпадающий список − имя группы. По умолчанию создается одна группа − Часы. Закладка этой группы видна в окне Список часов. Но можно разбить наблюдаемые величины на несколько групп (страниц). Для задания новой группы в контекстном меню окна наблюдения надо выбрать раздел Добавить группу и затем указать имя новой группы. Тогда в окне наблюдения появится новая страница, и на нее можно будет заносить новые наблюдаемые величины, выбирая в окне Свойства часов в списке Имя группы соответствующее имя.

Список выражений в окне наблюдения можно редактировать. Для удаления выражения его выделяют и нажимают Delete. Чтобы отредактировать ошибочное выражение, делают на нем двойной щелчок, а затем редактируют в окне Свойства часов.

Вернемся к примеру. В момент появления ошибки выполнения значение A равно , а следующее значение должно быть , которое переменная типа double хранить не может. Теперь можно нажимать Ctrl-F2, прерывать выполнение и исправлять код.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]