Помимо средств, которые использует разработчик программы для поиска и исправления допущенных ошибок, есть возможность программной обработки ошибок. Она заключается в том, что при возникновении ошибки при выполнении работы программы она не завершается аварийно, а выполняет определенные разработчиком действия.
Однако Borland Pascal не имеет таких развитых средств программной обработки ошибок, которые присущи большинству современных языков программирования. Но ошибки одного типа, а именно ошибки ввода/вывода, можно обрабатывать программно.
При записи информации на диск существует вероятность возникновения ошибок ввода/вывода: отсутствие диска в дисководе, обращение к несуществующему файлу и т.д.
Для программного контроля за выполнением этих операций можно использовать стандартную функцию IOResult без параметров. Значение этой функции равно 0, если операция ввода/вывода прошла успешно. В противном случае ее значение отлично от 0.
Рассмотрим правила обработки ошибочных ситуаций. По умолчанию при выполнении операций ввода/вывода автоматически производится контроль за возникновением ошибки. Если ошибка обнаружена, то выполнение программы прекращается, а на экран дисплея выводится краткое диагностическое сообщение, объясняющее суть ошибки.
Для программной обработки ошибки ввода/вывода нужно отключить контроль за выполнением операций директивой компилятору {$I-}. Затем выполнить "подозрительное" действие и снова включить контроль за выполнением операций директивой {$I+}. Далее сразу же необходимо проверить значение функции IOResult.
Пример: составить программу удаления файла с диска с использованием функции IOResult.
Program Delete; Var KF: File Of Char; Begin Assign(KF,'MYFILE.DOC'); {$i-} {Отключаем контроль за выполнением операций.} Erase(KF); {Выполняем "подозрительное" действие.} {$i+} {Включаем контроль за выполнением операций.} If not (IOResult=0) Then WriteLn ('ОШИБКА ПРИ УНИЧТОЖЕНИИ ФАЙЛА'); End.
В результате работы этой программы на экран будет выдано сообщение
"ОШИБКА ПРИ УНИЧТОЖЕНИИ ФАЙЛА", если файла с именем MYFILE.DOC на
диске нет. В противном случае файл MYFILE.DOC будет с диска удален.
Мы закончили рассматривать средства отладки. Следующий шаг содержит небольшой
список операций и функций, которые можно использовать при составлении Pascal-программы.