Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 3_5.pdf
Скачиваний:
14
Добавлен:
11.02.2016
Размер:
490.41 Кб
Скачать

Исходные условные идентификаторы, указанные в меню IDE Options¦Compiler¦Conditional Defines (Параметры¦Компилятор¦Условные определения)

или в параметре /D компилятора командной строки, являются недопустимыми. Borland Pascal требует 0 или более идентификаторов, разделенных пробелами, запятыми или точками с запятыми.

131Header does not match previous definition. (Заголовок не со-

ответствует предыдущему определению).

Заголовок процедуры или функции, указанный в интерфейсной секции или описании forward, не соответствует самому заголовку процедуры или функции.

132Cannot evaluate this expression. (Нельзя вычислить данное вы-

ражение).

Ввыражении-константе или в отладочном выражении вы пытаетесь использовать неподдерживаемые средства, например, в описании константы пытаетесь использовать

функцию Sin или вызвать в отладочном выражении определенную пользователем функцию.

137 Structured variable are not allowed here. (Здесь не допуска-

ется использование структурной переменной).

Делается попытка выполнить над структурной переменной неподдерживаемую операцию. Например, вы пытаетесь перемножить две записи.

140 Invalid floating-point operation. (Недопустимая операция с плавающей точкой).

При операции с двумя действительными значениями было получено переполнение или деление на ноль.

142Procedure or function variable expected. (Должна использо-

ваться процедурная или функциональная переменная).

Стандартная процедура Assigned требует аргумента типа переменной-указателя или процедурного типа.

143Invalid procedure or function reference. (Недопустимая ссылка на процедуру или функцию).

Попытка вызова процедуры или функции в выражении. Если ее нужно присвоить пе- ременной-процедуре, то процедура или функция должны компилироваться в состоя-

нии {$F+} и не может описываться с помощью ключевых слов inline или interrupt.

146 File access denied. (Файл недоступен)

Файл не можете быть открыт или создан. Вероятно, компилятор пытается записать файл, доступный только по чтению.

159 286/287 Instructions not allowed. (Инструкции процессоров

286/287 не разрешены).

Для разрешения кодов операций указанных процессоров используйте директиву компилятора {$G+}, но имейте в виду, что результирующий код не сможет работать на машинах с процессорами 8086 и 8088.

2 Ошибки этапа выполнения

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

Runtime error nnn at xxxx:yyyy (Ошибка этапа выполнения nnn по ад-

ресу xxxx:yyyy). Где nnn - номер ошибки времени выполнения, а xxxx:yyyy - это адрес ошибки этапа выполнения (сегмент и смещение). Ошибки этапа выполнения

делятся на две категории: ошибки DOS (коды ошибок с 1 до 99), ошибки ввода-вывода (с 100 по 149), критические ошибки (со 150 по 199) и фатальные ошибки (коды оши-

бок с 200 до 255).

Ошибки DOS

1Invalid function number. (Недопустимый номер функции) Вы обратились к несуществующей функции DOS.

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

Ошибка генерируется процедурами Reset, Append, Rename или Erase в случае, если имя присвоенное файловой переменной, указывает несуществующий файл.

3Path not found. (Маршрут не найден)

Ошибка генерируется процедурами Reset, Rewrite, Append или Erase в случае, если имя, присвоенное файловой переменной, является недействительным или указывает на несуществующий подкаталог.

Описывается ChDir, MkDir или RmDir в случае, если маршрут является недействительным или указывает несуществующий подкаталог.

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

Ошибка генерируется процедурами Reset, Rewrite или Append в случае, если программа имеет слишком много открытых файлов. Операционная система DOS не позволяет использовать более 15 открытых файлов для каждого процесса. Если вы получили эту ошибку при наличии менее 15 открытых файлов, то она может указывать на то, что файл CONFIG.SYS не включает параметров FILES=xxx или что этот параметр задает слишком мало файлов. Увеличьте число файлов до какого-либо подходящего значения, например, до 20.

5File access defined. (Нет доступа к файлу)

Данная ошибка генерируется процедурой Reset или Append в случае, если FileMode допускает запись, а имя, присвоенное файловой переменной, указывает каталог или файл, доступные только для чтения.

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

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

Данная ошибка генерируется процедурой Erase в случае, если имя, присвоенное файловой переменной, указывает каталог или файл, доступный только для чтения.

Данная ошибка генерируется процедурой MkDir в случае, если файл с тем же именем уже существует в порождающем каталоге, если нет места в порождающем каталоге, или если маршрут задает устройство.

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

Данная ошибка генерируется процедурой Read или BlockRead в случае типизированного или нетипизированного файла, если файл не открыт для чтения.

Данная ошибка генерируется процедурой Write или BlockWrite для типизированного или нетипизированного файла в случае, если этот файл не открыт для записи.

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

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

12Invalid file access code. (Недействительный код доступа к файлам) Ошибка генерируется процедурами Reset или Append в файле с типом или без типа

вслучае, если значение FileMode является не действительным.

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

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

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

лог)

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

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

Описывается Rename в случае, если оба файла не находятся на одном и том же диске.

18No more files. (Нет файлов)

Сообщается через переменную DosError в модуле Dos, когда вызов FindFirst или FindNest не находит файлов, совпадающих с заданными именем или набором атрибутов.

3 Ошибки ввода-вывода

Если один из операторов компилировался с директивой {$I+}, то эта ошибка приводит к прекращению выполнения программы. В состоянии {$I-} программа продолжает выполняться, а ошибка генерируется функцией IOResult.

100 Disk read error. (Ошибка чтения диска)

Описывается Read в типизированном файле в случае, если вы пытаетесь осуществить считывание после конца файла.

101 Disk write error. (Ошибка записи на диск)

Ошибка генерируется процедурами Close, Write, Writeln, Flush или Page в случае, если диск переполнен.

102 File not assigned. (Файлу не присвоено имя)

Ошибка генерируется процедурами Reset, Rewrite, Append, Rename и Erase в случае, если файловой переменной не было присвоено имя с помощью обращения к процедуре Assign.

103 File not open. (Файл не открыт)

Ошибка генерируется процедурами Close, Read, Write, Seek, Eof, FilePos,

FileSize, Flush, BlockRead или BlockWrite в случае, сели файл не открыт.

104 File not open for input. (Файл не открыт для ввода)

Ошибка генерируется процедурами Read, Readln, Eof, Eoln, SeekEof или SeekEoln в текстовом файле в случае, если файл не открыт для ввода.

105 File not open for output. (Файл не открыт для вывода)

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

106 Invalid numeric format. (Неверный числовой формат)

Описывается Read или Readln в случае, если числовое значение, считанное из текстового файла, не соответствует правильному числовому формату.

4 Критические ошибки

Примечание: Только для реального или защищенного режима.

150Disk is write protected. (Диск защищен от записи)

151Unknown unit. (Неизвестный модуль)

152Drive not ready. (Дисковод находится в состоянии "не готов")

153Unknown command. (Неопознанная команда)

154CRC error in data. (Ошибка в данных)

155Bad drive requiest structure length. (При запросе к диску ука-

зана неверная длина структуры)

156Disk seek error. (Ошибка при операции установки головок на диске)

157Unknown media type. (Неизвестный тип носителя)

158Sector not found. (Сектор не найден)

159Printer out of paper. (Кончилась бумага на устройстве печати)

160Device write fault. (Ошибка при записи на устройство)

161Device read fault. (Ошибка при чтении с устройства)

162Hardware failure (Сбой аппаратуры)

DOS сообщает об этой ошибке в результате нарушения совместного доступа или различных сетевых ошибок.

5 Фатальные ошибки

Эти ошибки всегда приводят к немедленной остановке программы.

200Division by zero. (Деление на ноль)

Впрограмме при операции /, mod или div предпринимается попытка разделить число на 0.

201Range check error. (Ошибка при проверке границ)

Ошибка генерируется процедурами операторами, скомпилированными в состоянии {$R+}, при возникновении одной из следующих ситуаций:

индексное выражение квалификатора массива находилось вне допустимого диапазона;

была осуществлена попытка присвоить переменной значение, находящееся вне диапазона переменной;

была осуществлена попытка передать значение, находящееся вне допустимого диапазона, в качестве параметра процедуре или функции.

202 Stack overflow error. (Переполнение стека)

Эта ошибка генерируется на входе в процедуру или функцию, скомпилированные в режиме {$S+}, в случае, если нет достаточной области для размещения локальных переменных подпрограммы. Увеличьте размер стека, используя директиву компилятора $M. Данная ошибка может также вызываться циклической рекурсией или процедурой на ассемблере, которая не поддерживает стек.

203Heap overflow error. (Переполнение динамически распределяемой области памяти).

Эта ошибка генерируется процедурами New или GetMem, в том случае, если нет достаточного свободного места в динамической области памяти, чтобы выделить память для блока требуемого размера.

204Invalid pointer operation. (Недействительная операция ссылки) Эта ошибка генерируется процедурами Dispose или FreeMem в случае, если ссылка имеет значение nil или указывает на адрес, лежащий за пределами динамически распределяемой области памяти, или если список свободных блоков не может быть расширен.

205Floating point overflow. (Переполнение при операции с плавающей точкой).

Операция с плавающей запятой привела к переполнению.

206Floating point underflow. (Исчезновение порядка при операции с плавающей точкой).

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

207Invalid floating point operation. (Недопустимая операция с плавающей точкой).

Действительное значение, передаваемое Trunc или Round, не может быть преобразовано в целое число, находящееся внутри диапазона типа longint (от - 2147483648 до 2147483647).

Аргумент, передаваемый функцией Sqrt (Извлечение квадратного корня), отрицательный.

Аргумент, передаваемый функцией Ln (логарифм), равен нулю или имеет отрицательное значение.

Произошло переполнение стека 8087.

208Overlay manager not installed. (Не установлена подсистема управления оверлеями).

[Только реальный режим]. Ваша программа вызывает оверлейную процедуру или функцию, а подсистема управления оверлеями не инициализирована. Вероятнее всего

отсутствует обращение к процедуре OvrInit, или обращение к этой процедуре завершилось с ошибкой. Нужно иметь в виду, что если в каком-либо из оверлейных модулей у вас содержится код инициализации, то вы должны создать дополнительный неоверлейный модуль, вызывающий процедуру OvrInit, и использовать этот модуль перед любым из оверлейных модулей.

215 Arithmetic overflow error. (Арифметическое переполнение)

Эту ошибку дают операторы, скомпилированные в состоянии {$G+}, когда арифметическая операция приводит к переполнению, например, когда результат операции лежит вне допустимого диапазона.

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