====== Коды ошибок в Turbo Pascal 7.0 ====== ===== Сообщения об ошибках периода компиляции ===== Среда Турбо Паскаля дает исчерпывающую информацию о характере и месте обнаруженной компилятором ошибки. При обнаружении ошибки среда автоматически загружает в окно редактора исходный файл и помещает курсор около того места, где в исходном тексте обнаружена ошибка. При этом в верхней строке редактора появляется диагностическое сообщение. После нажатия на любую клавишу (кроме F1) верхняя строка восстанавливает свой первоначальный вид, и среда переходит к режиму редактирования. Если после появления сообщения об ошибке нажать F1, на экране появится окно справочной службы с детальной информацией об ошибке и рекомендациями по ее устранению. Некоторые ошибки в исходном тексте обнаруживаются не сразу, а в ходе продолжающегося контекстного разбора. Например, несоответствие типов в операторе присваивания не может быть обнаружено до тех пор, пока не будет вычислено целиком выражение в правой части этого оператора. В таких случаях ищите ошибку слева от курсора или в предыдущей строке текста. Ниже приводятся сообщения об ошибках в том виде, в каком они появляются в верхней строке редактора, а также перевод сообщений справочной службы. ^ № ошибки ^ Название ^ | 1 | Out of memory (Выход за границы памяти). | | 2 | Identifier expected (Не указан идентификатор). | | 3 | Unknown identifier (Неизвестный идентификатор). | | 4 | Duplicate identifier (Двойной идентификатор). | | 5 | Syntax error (Синтаксическая ошибка). | | 6 | Error in real constant (Ошибка в вещественной константе). | | 7 | Error in integer constant (Ошибка в целой константе). | | 8 | String constant exceeds line (Строковая константа превышает допустимые размеры). | | 9 | Too many nested files (Слишком много вложенных файлов). | | 10 | Unexpected end of file (He найден конец файла). | | 11 | Line too long (Слишком длинная строка) | | 12 | Type identifier expected (Здесь нужен идентификатор типа). | | 13 | Too many open files (Слишком много открытых файлов). | | 14 | Invalid file name (Неверное имя файла). | | 15 | File not found (Файл не найден). | | 16 | Disk full (Диск заполнен). | | 17 | Invalid compiler directive (Неправильная директива компилятора). | | 18 | Too many files (Слишком много файлов). | | 19 | Undefined type in pointer definition (Неопределенный тип в объявлении указателя). | | 20 | Variable identifier expected (Отсутствует идентификатор переменной). | | 21 | Error in type (Ошибка в объявлении типа). | | 22 | Structure too large (Слишком большая структура). | | 23 | Set base type of range (Базовый тип множества нарушает границы). | | 24 | File components may not be files (Компонентами файла не могут быть файлы) . | | 25 | Invalid string length (Неверная длина строки). | | 26 | Type mismatch (Несоответствие типов). | | 27 | Invalid subrange base type (Неправильный базовый тип для типа-диапазона). | | 28 | Lower bound greater than upper bound (Нижняя граница больше верхней). | | 29 | Ordinal type expected (Нужен порядковый тип). | | 30 | Integer constant expected (Нужна целая константа). | | 31 | Constant expected (Нужна константа). | | 32 | Integer or real constant expected (Нужна целая или вещественная константа) . | | 33 | Type identifier expected (Нужен идентификатор типа) | | 34 | Invalid function result type (Неправильный тип результата функции) | | 35 | Label identifier expected (Нужен идентификатор метки). | | 36 | BEGIN expected (Нужен BEGIN). | | 37 | END expected (Нужен END). | | 38 | Integer expression expected (Нужно выражение типа INTEGER). | | 39 | Ordinal expression expected (Нужно выражение перечисляемого типа). | | 40 | Boolean expression expected (Нужно выражение типа BOOLEAN). | | 41 | Operand types do not match operator (Типы операндов не соответствуют операции). | | 42 | Error in expression (Ошибка в выражении). | | 43 | Illegal assignment (Неверное присваивание). | | 44 | Field identifier expected (Нужен идентификатор поля) . | | 45 | Object file too large (Объектный файл слишком большой). | | 46 | Undefined external (Неопределенная внешняя процедура). | | 47 | Invalid object file record (Неправильная запись объектного файла). | | 48 | Code segment too large (Сегмент кода слишком большой). | | 49 | Data segment too large (Сегмент данных слишком велик). | | 50 | DO expected (Нужен оператор DO). | | 51 | Invalid PUBLIC definition (Неверное PUBLIC-определение). | | 52 | Invalid EXTRN definition (Неправильное EXTRN-определение). | | 53 | Too many EXTRN definition (Слишком много EXTRN-определений). | | 54 | OF expected (Требуется OF). | | 55 | INTERFACE expected (Требуется интерфейсная секция). | | 56 | Invalid relocatable reference (Неправильная перемещаемая ссылка). | | 57 | THEN expected (Требуется THEN). | | 58 | TO or DOWNTO expected (Требуется TO или DOWNTO). | | 59 | Undefined forward (Неопределенное опережающее описание). | | 60 | Too many procedures (Слишком много процедур). | | 61 | Invalid typecast (Неверное преобразование типа). | | 62 | Division by zero (Деление на ноль). | | 63 | Invalid file type (Неверный файловый тип). | | 64 | Cannot Read or Write variables of this type (Нет возможности считать или записать переменные данного типа). | | 65 | Pointer variable expected (Нужно использовать переменную-указатель). | | 66 | String variable expected (Нужна строковая переменная). | | 67 | String expression expected (Нужно выражение строкового типа). | | 68 | Circular unit reference (Перекрестная ссылка модулей). | | 69 | Unit name mismatch (Несоответствие имен программных модулей). | | 70 | Unit version mismatch (Несоответствие версий модулей). | | 71 | Duplicate unit name (Повторное имя программного модуля). | | 72 | Unit file format error (Ошибка формата файла модуля). | | 73 | IMPLEMENTATION expected (Отсутствует исполняемая часть модуля). | | 74 | Constant and case types do not match (Типы констант и тип выражения опе- ратора CASE не соответствуют друг другу). | | 75 | Record variable expected (Нужна переменная типа запись). | | 76 | Constant out of range (Константа нарушает границы). | | 77 | File variable expected (Нужна файловая переменная). | | 78 | Pointer expression expected (Нужно выражение типа указатель). | | 79 | Integer or real expression expected (Нужно выражение вещественного или целого типа). | | 80 | Label not within current block (Метка не находится внутри текущего блока) | | 81 | Label already defined (Метка уже определена). | | 82 | Undefined label in processing statement part (Неопределенная метка в предшествующем разделе операторов). | | 83 | Invalid @ argument (Неправильный аргумент операции @). | | 84 | Unit expected (Нужно кодовое слово UNIT). | | 85 | ”;” expected (Нужно указать”;”). | | 86 | ”:” expected (Нужно указать”:”). | | 87 | ”,”expected (Нужно указать”,”). | | 88 | ”(” expected (Нужно указать ”(”). | | 89 | ”)” expected (Нужно указать”)”). | | 90 | ”=” expected (Нужно указать”=”) | | 91 | ”:=” expected (Нужно указать”:=”) | | 92 | ”[” or ”(.”expected (Нужно указать ”[” или ”(.”). | | 93 | ”]” or ”.)” expected (Нужно указать”]” или ”.)”). | | 94 | ”.” expected (Нужно указать”.”) | | 95 | ”..” expected (Нужно указать”..”). | | 96 | Too many variables (Слишком много переменных). | | 97 | Invalid FOR control variable (Неправильный параметр цикла оператора FOR). | | 98 | Integer variable expected (Нужна переменная целого типа). | | 99 | File and procedure types are not allowed here (Здесь не могут использоваться файлы или процедурные типы). | | 100 | String length mismatch (Несоответствие длины строки). | | 101 | Invalid ordering of fields (Неверный порядок полей). | | 102 | String constant expected (Нужна константа строкового типа). | | 103 | Integer or real variable expected (Нужна переменная типа INTEGER или REAL). | | 104 | Ordinal variable expected (Нужна переменная порядкового типа). | | 105 | INLINE error (Ошибка в операторе INLINE) | | 106 | Character expression expected (Предшествующее выражение должно иметь символьный тип). | | 107 | Too many relocation items (Слишком много перемещаемых элементов). | | 108 | Overflow in arithmetic operator (Переполнение при выполнении арифметического оператора). | | 109 | No enclosing FOR, WHILE or REPEAT statement (Нет операторов, заканчивающих операторы FOR, WHILE или REPEAT). | | 110 | Debug information table overflow (Переполнение информационной таблицы отладки) | | 111 | N/A | | 112 | CASE constant out of range (Константа CASE нарушает допустимые границы) . | | 113 | Error in statement (Ошибка в операторе). | | 114 | 114 Cannot call an interrupt procedure (Невозможно вызвать процедуру npерывания). | | 115 | N/A | | 116 | Must be in 8087 mode to compile this (Для компиляции необходим режим 8087). | | 117 | Target address not found (Указанный адрес не найден). | | 118 | 118 Include files are not allowed here (Здесь не допускаются включаемые файлы). | | 119 | No inherited methods are accessible here (В этом месте программы нет унаследованных методов). | | 120 | N/A | | 121 | Invalid qualifier (Неверный квалификатор). | | 122 | Invalid variable reference (Недействительная ссылка на переменную). | | 123 | Too many symbols (Слишком много символов). | | 124 | Statement part too large (Слишком большой раздел операторов). | | 125 | N/A | | 126 | Files must be var parameters (Файлы должны передаваться как параметры-переменные). | | 127 | Too many conditional symbols (Слишком много условных символов). | | 128 | Misplaced conditional directive (Пропущена условная директива). | | 129 | ENDIF directive missing (Пропущена директива ENDIF). | | 130 | Error in initial conditional defines (Ошибка в условных определениях). | | 131 | Header does not match previous definition (Заголовок не соответствует предыдущему определению). | | 132 | Critical disk error (Критическая ошибка диска). | | 133 | Cannot evaluate this expression (Нельзя вычислить данное выражение). | | 134 | Expression incorrectly germinated (Некорректное завершение выражения). | | 135 | Invalid format specifier (Неверный спецификатор формата). | | 136 | Invalid indirect reference (Недопустимая косвенная ссылка). | | 137 | Structured variable are not allowed here (Здесь нельзя использовать переменную структурного типа). | | 138 | Cannot evaluate without System unit (Нельзя вычислить выражение без мо-дуля SYSTEM). | | 139 | Cannot access this symbol (Нет доступа к данному символу). | | 140 | Invalid floating-point operation (Недопустимая операция с плавающей запятой). | | 141 | Cannot compile overlay to memory (Нельзя выполнить компиляцию оверлейных модулей в память). | | 142 | Procedure or function variable expected (Должна использоваться перемен- ная процедурного типа). | | 143 | Invalid procedure or function reference (Недопустимая ссылка на процедуру или функцию) . | | 144 | Cannot overlay this unit (Этот модуль не может использоваться в качестве оверлейного). | | 145 | Too many nested scopes (Слишком много вложений). | | 146 | File access denied (Отказано в доступе к файлу). | | 147 | Object type expected (Здесь должен быть тип OBJECT) . | | 148 | object types are not allowed (Нельзя объявлять локальные объекты). | | 149 | VIRTUAL expected (Пропущено слово VIRTUAL). | | 150 | Method identifier expected (Пропущен идентификатор инкапсулированного правила). | | 151 | Virtual constructor are not allowed (Конструктор не может быть виртуальным). | | 153 | Destructor identifier expected (Пропущен идентификатор деструктора). | | 154 | Fail only allowed within constructor (Обращение к стандартной процедуре FAIL может содержаться только в конструкторе). | | 155 | Invalid combination of opcode and operands (Недопустимая комбинация кода команды и операндов). | | 156 | Memory reference expected (Отсутствует адрес). | | 157 | Cannot add or subtract relocatable symbols (Нельзя складывать или вычитать перемещаемые символы). | | 158 | Invalid register combination (Недопустимая комбинация регистров). | | 159 | 286/287 instructions are not enabled (Недоступен набор команд микропроцессоров 286/287). | | 160 | Invalid symbol reference (Недопустимая ссылка на символ). | | 161 | Code generation error (Ошибка генерации кода). | | 162 | ASM expected (Отсутствует зарезервированное слово ASM). | ===== Ошибки, возникающие во время выполнения программ ===== Некоторые ошибки, обнаруженные во время выполнения программы, приводят к появлению на экране сообщения вида Runtime error nnn at xxxx:yyyy (Ошибка периода исполнения nnn по адресу хххх:уууу) где nnn — номер ошибки; xxxx:уyyу — адрес (сегмент и смещение). После этого сообщения программа завершает свою работу. Ошибки периода исполнения делятся на четыре категории: ошибки, обнаруживаемые ДОС (коды ошибок с 1 до 99), ошибки ввода-вывода (с 100 по 149), критические ошибки (с 150 по 199) и фатальные ошибки (коды ошибок с 200 до 255). ===== Ошибки, обнаруживаемые ДОС ===== ^ № ошибки (nnn) ^ Название ^ | 1 | Invalid function number (Неверный номер функции). | | 2 | File not found (He найден файл). | | 3 | Path not found (Путь не найден). | | 4 | Too many open files (Слишком много открытых файлов). | | 5 | File access defined (Отказано в доступе к файлу) . | | 6 | Invalid file handle (Недопустимый файловый канал). | | 12 | Invalid file access code (Недействительный код доступа к файлам). | | 15 | Invalid drive number (Недопустимый номер дисковода). | | 16 | Cannot remove current directory (Нельзя удалить текущий каталог) | | 17 | Cannot rename across drives (Нельзя при переименовании указывать разные дисководы). | ===== Ошибки ввода-вывода ===== Если один из операторов компилировался с директивой {$I+}, то ошибка ввода—вывода приводит к прекращению выполнения программы. В состоянии {$I—} программа продолжает выполняться, а ошибка возвращается функцией //IORESULT//. ^ № ошибки (nnn) ^ Название ^ | 100 | Disk read error (Ошибка чтения с диска). | | 101 | Disk write error (Ошибка записи на диск). | | 102 | File not assigned (Файлу не присвоено имя). | | 103 | File not open (Файл не открыт). | | 104 | File not open for input (Файл не открыт для ввода). | | 105 | File not open for output (Файл не открыт для вывода}. | | 106 | Invalid numeric format (Неверный числовой формат) | ===== Критические ошибки ===== ^ № ошибки (nnn) ^ Название ^ | 150 | Disk is write protected (Диск защищен от записи). | | 151 | Unknown unit (Неизвестный модуль). | | 152 | Drive not ready (Дисковод находится в состоянии «не готов»). | | 153 | Unknown command (Неопознанная команда). | | 154 | CRC error in data (Ошибка в исходных данных). | | 155 | Bad drive request structure length (При обращении к диску указана неверная длина структуры). | | 156 | Disk seek error (Ошибка при операции установки головок на диске). | | 157 | Unknown media type (Неизвестный тип носителя). | | 158 | Sector not found (Сектор не найден). | | 159 | Printer out of paper (Кончилась бумага на принтере). | | 160 | Device write fault (Ошибка при записи на устройство). | | 161 | Device read fault (Ошибка при чтении с устройства). | | 162 | Hardware failure (Сбой аппаратуры). | ===== Фатальные ошибки ===== Эти ошибки всегда приводят к немедленной остановке программы. ^ № ошибки (nnn) ^ Название ^ | 200 | Division by zero (Деление на ноль). | | 201 | Range check error (Ошибка при проверке границ). | | 202 | Stack overflow error (Переполнение стека). | | 203 | Heap overflow error (Переполнение кучи). | | 204 | Invalid pointer operation (Недействительная операция с указателем). | | 205 | Floating point overflow (Переполнение при операции с плавающей запя- той). | | 206 | Floating point underflow (Исчезновение порядка при операции с плавающей запятой). | | 207 | Invalid floating point operation (Недопустимая операция с плавающей запятой) . | | 208 | Overlay manager not installed (He установлена подсистема управления оверлеем). | | 209 | Overlay file read error (Ошибка чтения оверлейного файла). | | 210 | Object not initialized (He инициирован объект). | | 211 | Call to abstract method (Вызов абстрактного правила). | | 212 | Stream registration error (Ошибка в регистрируемом потоке). | | 213 | Collection index out of range (Набираемый индекс выходит из границ диа-пазона). | | 214 | Collection overflow error (Переполнение коллекции). |