
* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
50 Языки Бейсик быть исправлены во время отладки программы, и не только ошибки разработчи¬ ка или постановщика задачи, которые должны быть устранены во время опытной эксплуатации программы. Н о такие ошибки, как сбой техники или оператора, который будет эксплуатировать вашу программу, к сожалению, программа и вы исключить не можете. И если ваша программа будет каждый раз заканчивать свою работу только потому, что оператор вставил не тот диск в дисковод или во¬ обще выпустил из виду, что диск не вставлен в д и с к о в о д ( в п р о с т о р е ч и и : про¬ грамма слетела), то вряд ли вы с гордостью признаетесь, что это ваше творение так "невоспитанно" себя ведет. Поэтому, надеясь на лучшее, предполагайте худ¬ шее. Конечно, очень важен опыт, который приобретается со временем, но преду¬ смотреть, что дисковод или принтер может быть не готов к работе, вы просто обязаны, если надеетесь, что кроме вас вашей программой будет еще кто-нибудь пользоваться. Именно для этих целей существует оператор O N ERROR GOTO. Формат оператора ON-ERROR: ON ERROR GOTO метка где метка — метка оператора подпрограммы обработки ошибок. Для выключения обработки ошибок необходимо задать GOTO 0. Если оператор ON-ERROR не используется, то любая ошибка выполнения за¬ вершает работу вашей программы. Подпрограмма обработки ошибки должна содержать оператор RESUME, ко¬ торый продолжает выполнение программы после подпрограммы обработки ошибки. Программа может содержать несколько операторов O N ERROR. Выполнять¬ ся будет ближайший, предшествующий месту возникновения ошибки. П р и м е р 7.14.1. 'программа демонстрирует работу операторов ON ERROR GOTO и RESUME c o n t : INPUT "введите имя файла:-"; f i l e $ 'ввести имя файла ON ERROR GOTO p r o b l e m 'к подпрограмме обработки ошибки диска OPEN f i l e $ FOR APPEND AS # 1 'открыть файл как обновляемый INPUT "Что записать в файл?-"; zap$ PRINT # 1 , zap$ 'запись в файл CLOSE # 1 'закрыть файл INPUT "будете делать контрольное чтение(0-да)? — "; f l % SELECT CASE f l % 'проверка ответа CASE 0 'если да-то ON ERROR GOTO p r o b l e m 1 'еще одна подпрограмма обработки 'ошибки при контрольном чтении файла OPEN f i l e $ FOR INPUT AS # 1 'открытие файла для чтения DO 'цикл на чтение всех записей INPUT # 1 , f z a p $ 'чтение файла PRINT f z a p $ 'печать прочитанной записи