Иллюстрированный самоучитель по Turbo Pascal

Ошибки возникающие во время выполнения программ. Ошибки, обнаруживаемые ДОС.

Некоторые ошибки, обнаруженные во время выполнения программы, приводят к появлению на экране сообщения вида:

Runtime error ппп at хххх:уууу
(Ошибка периода исполнения ппп по адресу хххх:уууу)

Где ппп – номер ошибки; хххх:уууу – адрес (сегмент и смещение).

После этого сообщения программа завершает свою работу.

Ошибки периода исполнения делятся на четыре категории: ошибки, обнаруживаемые ДОС (коды ошибок с 1 до 99), ошибки ввода-вывода (с 100 по 149), критические ошибки (с 150 по 199) и фатальные ошибки (коды ошибок с 200 до 255).

Ошибки, обнаруживаемые ДОС

1 Invalid function number (Неверный номер функции).

Вы пытаетесь вызвать несуществующую функцию ДОС.

2 File not found (He найден файл).

Ошибка генерируется процедурами RESET, APPEND, RENAME или ERASE в случае, если имя, присвоенное файловой переменной, указывает несуществующий файл.

3 Path not found (Путь не найден).

Ошибка генерируется процедурами:

  • RESET, REWRITE, APPEND или ERASE в случае, если имя, присвоенное файловой переменной, является недействительным или указывает на несуществующий подкаталог;
  • CHDIR, MKDIR или RMDIR в случае, если путь является недействительным или указывает несуществующий подкаталог.

4 Too many open files (Слишком много открытых файлов).

Ошибка генерируется процедурами RESET, REWRITE или APPEND в случае, если программа имеет слишком много открытых файлов. ДОС не позволяет использовать более 15 открытых файлов для каждого процесса. Если ошибка возникла при наличии менее 15 открытых файлов, то она может указывать на то, что файл CONFIG.SYS не содержит параметра FILES=xxx или что этот параметр задает слишком мало файлов. Увеличьте параметр FILES=xxx до какого-либо подходящего значения, например, до 80.

5 File access defined (Отказано в доступе к файлу).

Данная ошибка генерируется процедурами:

  • RESET или APPEND в случае, когда имя, присвоенное файловой переменной, указывает каталог или файл, доступный только для чтения, в то время как параметр FILEMODE файловой переменной содержит указание на запись данных;
  • REWRITE в случае, когда каталог заполнен, или если имя, присвоенное файловой переменной, задает каталог или существующий файл, доступный только для чтения;
  • RENAME в случае, если имя, присвоенное файловой переменной, указывает каталог или если новое имя указывает существующий файл;
  • ERASE в случае, если имя, присвоенное файловой переменной, указывает каталог или файл, доступный только для чтения;
  • MKDIR в случае, если файл с тем же именем уже существует в порождающем каталоге, если нет места в порождающем каталоге или если путь к каталогу содержит имя логического устройства;
  • RMDIR в случае, если каталог не является пустым, если путь не определяет каталог или если путь задает корневой каталог;
  • READ или BLOCKREAD в случае типизированного или нетипизированного файла, если файл не открыт для чтения;
  • WRITE или BLOCKWRITE для типизированного или нетипизированного файла в случае, если этот файл не открыт для записи.

6 Invalid file handle (Недопустимый файловый канал).

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

12 Invalid file access code (Недействительный код доступа к файлам).

Ошибка генерируется процедурами RESET или APPEND, если значение параметра FILEMODE в файловой переменной не является допустимым.

15 Invalid drive number (Недопустимый номер дисковода).

Ошибка генерируется процедурой GETDIR в случае, если номер дисковода не является допустимым.

16 Cannot remove current directory (Нельзя удалить текущий каталог).

Ошибка генерируется процедурой RMDIR в случае, если путь указывает текущий каталог.

17 Cannot rename across drives (Нельзя при переименовании указывать разные дисководы).

Генерируется процедурой RENAME в случае, если оба файла не находятся на одном и том же диске.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.