BASIC-256. Глава 18
Методические материалыАвтор: Владимир Черный
Продолжаем публиковать перевод книги Джеймса Рено. Эту главу перевел Владимир Черный.
Оглавление:
- Глава 1: Знакомство с BASIC-256 – cкажи «Привет»
- Глава 2: Рисуем основные фигуры
- Глава 3: Звуки и музыка
- Глава 4: Мыслить как программист
- Глава 5: Программа задает вам вопросы
- Глава 6: Сравнения, сравнения, сравнения
- Глава 7: Циклы и счетчики — повторяем снова и снова
- Глава 8: Графика на заказ — создание фигур своими руками
- Глава 9: Подпрограммы — повторное использование кода
- Глава 10: Управляем мышкой, перемещаем объекты
- Глава 11: Использование клавиатуры для управления программой
- Глава 12: Картинки, музыка и спрайты
- Глава 13 Массивы — коллекции данных
- Глава 14 Математика — развлечемся с числами
- Глава 15 Работаем со строками
- Глава 16 Файлы. Сохраним информацию на будущее
- Глава 17 Стеки, очереди, списки и сортировка
Глава 18 Ловушки для ошибок времени исполнения
Если вы работали над примерами и создавали свои программы, то видели ошибки, случающиеся, когда программа выполняется. Такие ошибки называются «ошибки времени исполнения» (по английски: «runtime errors»). BASIC-256 включает группу специальных команд, которые позволяют запрограммировать восстановление после ошибки или их обработку.
Перехват ошибок, даже если вы об этом не думаете, может вызвать проблемы. Его следует использовать только если это нужно и отключать такие ловушки, когда в этом нет необходимости.
Перехват ошибок
Когда режим перехвата ошибок включен с помощью оператора onerror, программа переходит на указанную подпрограмму в момент возникновения ошибки. Если мы посмотрим в программу 99, то увидим, что подпрограмма обработки ошибки вызывается в момент, когда программа пытается прочитать значение переменной z (неопределенная переменная). Если закомментировать первую строку этой программы и попробовать ее запустить, она просто завершится, когда произойдет ошибка.
1 onerror errortrap
2
3 print "z = " + z
4 print "все еще работает после ошибки"
5 end
6
7 errortrap:
8 print "Я поймал ошибку!"
9 return
Программа 99 Простой пример перехвата ошибок.
Я поймал ошибку!
z = 0
все еще работает после ошибки
Пример вывода программы 99 Простой пример перехвата ошибок.
onerror метка
Создает ловушку для ошибки, программа автоматически переходит к подпрограмме, определенной меткой, когда произойдет ошибка. |
Какая ошибка произошла?
Иногда знание того, что произошла ошибка не достаточно. Есть функции, которые возвращают номер ошибки (lasterror), строку программы, где произошла ошибка (lasterrorline), текстовое сообщение, поясняющее суть ошибки (lasterrormessage) и дополнительные сообщения об ошибке (lasterrorextra).
Программа 100 модифицирует предыдущую программу и печатает деталировку произошедшей ошибки.
1 onerror errortrap
2
3 print "z = " + z
4 print "все еще работает после ошибки"
5 end
6
7 errortrap:
8 print "Ловушка активирована!"
9 print " Ошибка = " + lasterror
10 print " На строке = " + lasterrorline
11 print " Сообщение = " + lasterrormessage
12 return
Программа 100 Ловушка для ошибок с комментариями
Ловушка активирована!
Ошибка = 12
На строке = 3
Сообщение = Неизвестная переменная
z = 0
все еще работает после ошибки
Пример вывода программы 100 Ловушка для ошибок с комментариями
lasterror или lasterror() lasterrorline или lasterrorline() lasterrormessage или lasterrormessage() lasterrorextra или lasterrorextra() Четыре функции возвращают информацию о последней перехваченной ошибке. Значения остаются неизменными, пока не произойдет еще одна ошибка.
|
Отключение режима перехвата ошибок
Иногда нужно, чтобы программа перехватывала ошибки в одной своей части и не перехватывала в другой. Вы увидите такие примеры в следующих главах.
Оператор offerror отключает режим перехвата ошибок. После него, любая ошибка приведет к остановке выполнения программы.
1 onerror errortrap
2 print "z = " + z
3 print "Продолжаю работать после первой ошибки"
4
5 offerror
6 print "z = " + z
7 print "Продолжаю работать после второй ошибки"
8
9 end
10
11 errortrap:
12 print "Перехват ошибок активирован"
13 return
Программа 101 Отключение перехвата ошибок
Перехват ошибок активирован
z = 0
Продолжаю работать после первой ошибки
ОШИБКА в строке 6: Неизвестная переменная
Пример вывода программы 101 Отключение перехвата ошибок
Где скачать BASIC-256:
Для дистрибутивов ALT Linux
- ветка 4.0 basic256-0.9.6-alt5.M40.1.i586.rpm
- ветка 4.1 basic256-0.9.6-alt5.M41.1.i586.rpm
- ветка p5 basic256-0.9.6-alt5.M50P.1.i586.rpm
- ветка 5.1 basic256-0.9.6-alt5.M51.1.i586.rpm
Windows версия
http://basic256.org (http://www.sourceforge.net/projects/kidbasic)
Как установить BASIC-256 в Linux
Для Альт Линукс: настроить репозиторий и обновить/установить пакет через synaptic или apt
Для rpm-based дистрибутивов: rpm -Uvh <имя_пакета>.rpm
Оставьте комментарий