Основы алгоритмизации и программирования
.pdf
|
|
Продолжение табл. П 2.1 |
|
|
|
1 |
2 |
3 |
157 |
Cannot add or substract relo- |
С перемещаемыми идентификатора- |
|
catable symbols |
ми в операнде Ассемблера допуска- |
|
(Сложение или вычитание |
ется выполнение единственной опе- |
|
перемещаемых символов |
рации – сложения с константой или |
|
невозможно) |
вычитания константы. Переменные, |
|
|
процедуры, функции и метки пред- |
|
|
ставляют собой перемещаемые |
|
|
идентификаторы. Предположим, |
|
|
что Var – это переменная, a Const – |
|
|
константа. Тогда инструкции |
|
|
Mov AX,Const+Const и Mov AX, |
|
|
Var+Const являются допустимыми, |
|
|
a Mov AX,Var+Var – нет |
158 |
Invalid register combination |
Допустимымикомбинациямииндекс- |
|
(Недопустимая регистровая |
ных регистров являются [ВХ], [ВР], |
|
комбинация) |
[SI], [DI], [BX+SI], [BX+DI], [BP+SI] |
|
|
и [BP+DI]. Другая комбинация ин- |
|
|
дексных регистров (например, [AX], |
|
|
[BP+BX] и[SI+DX]), недопускается. |
|
|
Заметим, что локальные переменные |
|
|
(переменные, описанные в процеду- |
|
|
ре или функции) размещаются в сте- |
|
|
ке, идоступкниморганизуетсячерез |
|
|
регистр ВР. При ссылках на такие |
|
|
переменные Ассемблер автоматиче- |
|
|
ски добавляет [ВР], поэтому, хотя |
|
|
конструкция типа Local [BX] (где |
|
|
Local — локальная переменная) и |
|
|
выглядит допустимой, операндом в |
|
|
итоге будет Local [BP+BX] |
159 |
286/287 Instructions not |
Следует использовать директиву |
|
allowed |
компилятора {$G+}, имея в виду, что |
|
(Инструкции процессоров |
результирующий код не сможет ра- |
|
286/287 не разрешены) |
ботать на машинах с процессорами |
|
|
8086 и 8088 |
|
|
81 |
|
|
Окончание табл. П 2.1 |
|
|
|
1 |
2 |
3 |
160 |
Invalid symbol reference |
Данный идентификатор в операнде |
|
(Недопустимая ссылка на |
Ассемблера недоступен. Ошибка мо- |
|
идентификатор) |
жет появиться no следующим при- |
|
|
чинам: |
|
|
Вы пытались обратиться к стан- |
|
|
дартной процедуре, стандартной |
|
|
функцииилиспециальныммассивам |
|
|
Меm, MemW, MemL, Port, PortW |
|
|
Вы обратились к строковой, веще- |
|
|
ственной константе в операторе |
|
|
ассемблерной команды |
|
|
в операнде Ассемблера Вы пыта- |
|
|
лись обратиться к процедуре или |
|
|
функции типа Inline |
|
|
Вы пытались получить с помощью |
|
|
операции ©Result доступ к резуль- |
|
|
тату, возвращаемому функцией |
|
|
Вы пытались использовать корот- |
|
|
кую инструкцию команды JMP, ко- |
|
|
торая выполняет переход не на мет- |
|
|
ку, a на что-то другое |
161 |
Code generation error |
Ошибка возникает, в частности, при |
|
(Ошибка генерации кода) |
компиляции ассемблерных фрагмен- |
|
|
тов, содержащих команды Loqpne, |
|
|
Loope, Loop или JCXZ, если коман- |
|
|
да ссылается на недоступную метку |
162 |
ASM expected |
|
|
(Ожидается ключевое слово |
|
|
ASM) |
|
163 |
Duplicate dynamic method |
Индекс динамического метода уже |
|
index |
использован другим динамическим |
|
(Дублирование индекса ди- |
методом. Возможно, Вы пытались |
|
намического метода) |
переопределитьдинамическийметод, |
|
|
но ошиблись в имени, введя таким |
|
|
образом новый метод |
82
Ошибки времени выполнения
Таблица П 2.2
Ошибки ввода-вывода (код 1-199)
Коды |
|
|
оши- |
Вид сообщения |
Смысл сообщения |
бок |
|
|
1 |
2 |
3 |
1 |
Invalid function number |
Обращение к несуществующей |
|
(Ошибочныйномер функции) |
функции DOS |
2 |
File not found |
Ошибка генерируется процедурами |
|
(He найден файл) |
Reset, Append, Rename или Erase, |
|
|
если физический файл, связанный с |
|
|
файловой переменной, не найден |
|
|
или не существует |
3 |
Path not found |
Ошибка генерируется процедурами |
|
(Путь не найден) |
Reset, Append, Rename или Erase, |
|
|
если имя, присвоенное файловой пе- |
|
|
ременной, является недействитель- |
|
|
ным или указывает на несуществую- |
|
|
щий подкаталог. Ошибка генериру- |
|
|
ется процедурами ChDir, MkDir или |
|
|
RmDir, если маршрут является не- |
|
|
действительным или указывает на |
|
|
несуществующий подкаталог |
4 |
Too many open files |
Ошибка генерируется процедурами |
|
(Слишком много открытых |
Reset, Rewrite или Append, если |
|
файлов) |
программа имеет слишком много |
|
|
открытых файлов. Операционная |
|
|
система DOS не позволяет исполь- |
|
|
зовать более 15 открытых файлов |
|
|
для каждого процесса. Если вы по- |
|
|
лучилиэтуошибкуприналичииме- |
|
|
нее15 открытых файлов, надо увели- |
|
|
читьчислов параметреFiles=xx фай- |
|
|
лаConfig.sys до какого-либоподхо- |
|
|
дящего значения, например, до 30 |
|
|
83 |
|
|
Продолжение табл. П 2.2 |
|
|
|
1 |
2 |
3 |
5 |
File access denied |
Появление этого сообщения возмож- |
|
(Отказано в доступе к файлу) |
но no следующим причинам: |
|
|
Данная ошибка генерируется про- |
|
|
цедурой Reset или Append, если пе- |
|
|
ременнаяFileMode допускаетзапись, |
|
|
в товремя как физический файл яв- |
|
|
ляется каталогом или файлом, дос- |
|
|
тупным только для чтения |
|
|
Данная ошибка генерируется про- |
|
|
цедурой Rewrite, если каталог за- |
|
|
полнен или если имя, присвоенное |
|
|
файловой переменной, задает ката- |
|
|
лог или существующий файл, дос- |
|
|
тупный только для чтения |
|
|
Данная ошибка генерируется про- |
|
|
цедурой Rename, если имя, присво- |
|
|
енное файловой переменной, совпа- |
|
|
дает с именем каталога или если но- |
|
|
вое имя указывает на уже сущест- |
|
|
вующий файл |
|
|
Данная ошибка генерируется про- |
|
|
цедурой Erase при попытке стереть |
|
|
каталог или файл, доступный только |
|
|
для чтения |
|
|
Данная ошибка генерируется про- |
|
|
цедуройMkDir, еслифайлстемже |
|
|
именем ужесуществуетвпорождаю- |
|
|
щемкаталоге, еслинетместавпоро- |
|
|
ждающемкаталоге илиеслизаданное |
|
|
имяявляетсяименем устройства |
|
|
Эта ошибка генерируется проце- |
|
|
дурой RmDir, если каталог не явля- |
|
|
ется пустым, если указанный путь |
|
|
не определяет каталог или если путь |
|
|
задает корневой каталог |
|
|
Данная ошибка генерируется про- |
|
|
цедурой Read или BlockRead при |
|
|
попытке считать данные из файла, |
|
|
который еще не открыт для чтения |
|
|
Эта ошибка генерируется проце- |
|
|
дурой Write или BlockWrite при |
|
|
попытке записать данные в файл, |
|
|
который еще не открыт для записи |
84
|
|
Продолжение табл. П 2.2 |
|
|
|
1 |
2 |
3 |
6 |
Invalid file handle |
Данная ошибка генерируется, если |
|
(Недопустимый описатель |
системному вызову DOS передается |
|
файла) |
недопустимый описатель файла. |
|
|
Появление данной ошибки является |
|
|
свидетельством того, что файловая |
|
|
переменная испорчена |
7 |
Not enough memory |
|
|
(Недостаточно памяти для |
|
|
запуска программы) |
|
12 |
Invalid file access code |
Ошибка генерируется процедурами |
|
(Неверный код доступа к |
Reset или Append при попытке от- |
|
файлам) |
крытьфайл(типизированный илине- |
|
|
типизированный), еслизначениепе- |
|
|
ременнойFileMode вмомент откры- |
|
|
тияфайлабыло недействительным |
15 |
Invalid drive number |
Ошибка генерируется процедурой |
|
(Недопустимый номер диска) |
GetDir или ChDir, если номер дис- |
|
|
ка недопустим |
16 |
Cannot remove current |
Ошибка генерируется процедурой |
|
directory |
RmDir при попытке удалить теку- |
|
(Нельзя удалить текущий |
щий каталог |
|
каталог) |
|
17 |
Cannot rename across drives |
Ошибка генерируется процедурой |
|
(Нельзя при переименовании |
Rename, если оба файла не находят- |
|
указывать разные диски) |
ся на одном и томже диске |
18 |
No more files |
Этаошибкапередается впеременную |
|
(Больше нет файлов) |
Doserror модулейDOS иWinDOS, |
|
|
ес-липривызовепроцедур FindFirst |
|
|
и FindNext ненайденофайлов сза- |
|
|
данным именем и набороматрибутов |
100 |
Disk read error |
Ошибка генерируется процедурой |
|
(Ошибка чтения диска) |
Read при попытке осуществить счи- |
|
|
тывание после конца типизирован- |
|
|
ного файла |
101 |
Disk write error |
Ошибка генерируется процедурами |
|
(Ошибка записи на диск) |
Close, Write, Writeln, Flush, если на |
|
|
диске нет свободного места |
|
|
85 |
|
|
Продолжение табл. П 2.2 |
|
|
|
1 |
2 |
3 |
102 |
File not assigned |
Ошибка генерируется процедурами |
|
(Файл не связан) |
Reset, Rewrite, Append, Rename и |
|
|
Erase, если с файловой переменной |
|
|
не было связано имя физического |
|
|
файла посредством обращения к |
|
|
процедуре Assing |
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, если текстовый |
|
|
файл не открыт для записи |
106 |
Invalid numeric format |
Ошибка генерируется процедурами |
|
(Недопустимый числовой |
Read илиReadln, есличисловоезна- |
|
формат) |
чение, считанное изтекстового фай- |
|
|
ла, несоответствуетчисловомуфор- |
|
|
матусоответствующего типаданных |
150 |
Disk is write-protected |
|
|
(Диск защищен or записи) |
|
151 |
Bad drive request structure |
|
|
length |
|
|
(Неправильная длина струк- |
|
|
туры запроса дисковода) |
|
152 |
Drive not ready |
|
|
(Дисковод не готов) |
|
153 |
Unknown command |
|
|
(Неизвестная команда) |
|
154 |
CRC error in data |
|
|
(Ошибка контроля данных) |
|
155 |
Bad drive request structure |
|
|
length |
|
|
(Приобращениикдискууказа- |
|
|
наневернаядлинаструктуры) |
|
86
Окончание табл. П 2.2
1 |
2 |
3 |
156Disk seek error
(Ошибка при поиске дорожки диска)
157Unknown media type (Неизвестный тип носителя)
158Sector not found (Сектор не найден)
159Printer out of paper (Принтер без бумаги)
160Device write fault (Неисправное устройство записи)
161Device read fault (Неисправное устройство чтения)
162Hardware failure
(Сбой аппаратных средств)
Таблица П 2.3 Фатальные ошибки* (код 200-255)
|
|
|
Код |
Вид сообщения |
Смысл сообщения |
оши- |
||
бок |
|
|
1 |
2 |
3 |
200 |
Division by zero |
В программе при операции деления |
|
(Деление на нуль) |
Mod или Div предпринимается по- |
|
|
пытка разделить число на 0 |
201 |
Range check error |
Ошибка генерируется процедурами- |
|
(Ошибка при проверке |
операторами, скомпилированными в |
|
границ) |
режиме {$R+}, при возникновении |
|
|
одной из следующих ситуаций: |
|
|
индексное выражение квалифика- |
|
|
тора массива находилось вне допус- |
|
|
тимого интервала значений |
|
|
была осуществлена попытка при- |
|
|
своить переменной значение, нахо- |
|
|
дящееся вне допустимого интервала |
|
|
была осуществлена попытка пере- |
|
|
дать значение, находящееся вне до- |
|
|
пустимого интервала, в качестве па- |
|
|
раметра процедуре или функции |
* Фатальные ошибки приводят к немедленному завершению программы.
87
|
|
Продолжение табл. П 2.3 |
|
|
|
1 |
2 |
3 |
202 |
Stack overflow error |
Эта ошибка генерируется на входе в |
|
(Переполнение стека) |
процедуру или функцию, скомпили- |
|
|
рованные в режиме {$S+}, если нет |
|
|
достаточнойобластидляразмещения |
|
|
локальных переменных подпрограм- |
|
|
мы. Следует увеличить размер сте- |
|
|
ка, используя директиву компилято- |
|
|
ра $М. Данная ошибка может также |
|
|
вызываться циклической рекурсией |
|
|
или процедурой на Ассемблере, ко- |
|
|
торая не поддерживает стек |
203 |
Heap overflow error |
Эта ошибка генерируется процеду- |
|
(Переполнение динамически |
рами New или GetMem, если нет |
|
распределяемой области |
достаточного свободного объема |
|
памяти) |
динамической области памяти, что- |
|
|
бы выделить память для блока тре- |
|
|
буемого размера |
204 |
Invalid pointer operation |
Эта ошибка генерируется процеду- |
|
(Недействительная операция |
рами Dispose или FreeMem, если их |
|
с указателем) |
аргумент имеет значение Nil, ука- |
|
|
зывает на адрес, лежащий за преде- |
|
|
лами динамически распределяемой |
|
|
области, или если список свободных |
|
|
блоков переполнен |
205 |
Floating point overflow |
Выполнение операции с плавающей |
|
(Переполнение при операции |
точкой привело к переполнению |
|
с плавающей точкой) |
|
206 |
Floating point underflow |
Операция с плавающей точкой при- |
|
(Исчезновение порядка при |
вела к исчезновению порядка (поте- |
|
операции с плавающей |
ря значимости). Эта ошибка генери- |
|
точкой) |
руется, если использовать математи- |
|
|
ческийсопроцессор8087 с управляю- |
|
|
щим словом, которое демаскирует |
|
|
ошибки, возникающие при исчезно- |
|
|
вении порядка. По умолчанию исчез- |
|
|
новение порядка приводит к возвра- |
|
|
щению результата, равного нулю |
88
|
|
Продолжение табл. П 2.3 |
|
|
|
1 |
2 |
3 |
207 Invalid floating point operation |
Эта ошибка может появиться no сле- |
|
|
(Недопустимая операция с |
дующим причинам: |
|
вещественным числом) |
вещественное значение, переда- |
|
|
ваемое функции Trunc или Round, |
|
|
не может быть преобразовано в це- |
|
|
лое число, находящееся внутри до- |
|
|
пустимого предела типа Longlnt |
|
|
(oт -2147483648 до 2147483647) |
|
|
аргумент, предаваемый функции |
|
|
Sqrt, отрицательный |
|
|
аргумент, передаваемый функции |
|
|
ln, равен нулю или имеет отрица- |
|
|
тельное значение |
|
|
произошло переполнение стека |
|
|
сопроцессора 80x87 |
208Overlay manager not installed (Не установлена подсистема управления оверлеями)
209Overlay file read error (Ошибка при чтении оверлейного файла)
210 |
Object not initialized |
Попытка обратиться к виртуальному |
|
(Объект не инициализирован) |
методу объекта до того, как он ини- |
|
|
циализируется с помощью вызова |
|
|
конструктора |
211 Call to abstract method |
Данная ошибка генерируется проце- |
|
|
(Вызов неопределенного |
дурой Abstract и указывает на то, |
|
метода) |
что программа пытается выполнить |
|
|
ранеенеопределенный(абстрактный) |
|
|
виртуальный метод. Когда объект- |
|
|
ный тип содержит один или более |
|
|
абстрактных методов, он называется |
|
|
абстрактным объектным типом |
212 |
Stream registration error |
Данная ошибка генерируется про- |
|
(Ошибкарегистрации потока) |
цедурой RegisterType и указывает, |
|
|
что произошла одна из следующих |
|
|
ошибок: |
|
|
Запись регистрации потока не на- |
|
|
ходится в текущем сегменте данных |
|
|
Поле obj-типа записи регистрации |
|
|
потока является нулевым |
|
|
Тип уже зарегистрирован |
|
|
Уже зарегистрирован другой тип с |
|
|
тем же obj-типом |
|
|
89 |
|
|
Окончание табл. П 2.3 |
|
|
|
1 |
2 |
3 |
213 |
Collection overflow error |
Индекс, передаваемый методу |
|
(Ошибка переполнения кол- |
TCollection, выходит за границы |
|
лекции) |
допустимого диапазона |
214 |
Collection overflow error |
Данная ошибка выдается TCollection |
|
(Ошибка переполнения кол- |
при попытке добавить элемент, когда |
|
лекции) |
набор переполнен |
215 |
Arithmetic overflow error |
Ошибка возникает при использова- |
|
(Ошибка при выполнении |
нии директивы {$Q+}, если при опе- |
|
математической операции) |
рациисцелочисленнымитипамидан- |
|
|
ных произошло переполнение, – на- |
|
|
пример, результат операции превы- |
|
|
сил допустимый диапазон значений |
90
