Runtime error 202 pascal

Pascal runtime error 202 Applications generated by Free Pascal might generate run-time errors when certain abnormal conditions are detected in the application. This appendix lists the possible run-time errors and gives information on why they might be produced. 1 Invalid function number An invalid operating system call was attempted. 2 File not found Reported […]

Pascal runtime error 202

Applications generated by Free Pascal might generate run-time errors when certain abnormal conditions are detected in the application. This appendix lists the possible run-time errors and gives information on why they might be produced. 1 Invalid function number An invalid operating system call was attempted. 2 File not found Reported when trying to erase, rename or open a non-existent file. 3 Path not found Reported by the directory handling routines when a path does not exist or is invalid. Also reported when trying to access a non-existent file. 4 Too many open files The maximum number of files currently opened by your process has been reached. Certain operating systems limit the number of files which can be opened concurrently, and this error can occur when this limit has been reached. 5 File access denied Permission to access the file is denied. This error might be caused by one of several reasons:

  • Trying to open for writing a file which is read-only, or which is actually a directory.
  • File is currently locked or used by another process.
  • Trying to create a new file, or directory while a file or directory of the same name already exists.
  • Trying to read from a file which was opened in write-only mode.
  • Trying to write from a file which was opened in read-only mode.
  • Trying to remove a directory or file while it is not possible.
  • No permission to access the file or directory.

6 Invalid file handle If this happens, the file variable you are using is trashed; it indicates that your memory is corrupted. 12 Invalid file access code Reported when a reset or rewrite is called with an invalid FileMode value. 15 Invalid drive number The number given to the Getdir or ChDir function specifies a non-existent disk. 16 Cannot remove current directory Reported when trying to remove the currently active directory. 17 Cannot rename across drives You cannot rename a file such that it would end up on another disk or partition. 100 Disk read error An error occurred when reading from disk. Typically happens when you try to read past the end of a file. 101 Disk write error Reported when the disk is full, and you’re trying to write to it. 102 File not assigned This is reported by Reset , Rewrite , Append , Rename and Erase , if you call them with an unassigned file as a parameter. 103 File not open Reported by the following functions : Close, Read, Write, Seek, EOf, FilePos, FileSize, Flush, BlockRead, and BlockWrite if the file is not open. 104 File not open for input Reported by Read, BlockRead, Eof, Eoln, SeekEof or SeekEoln if the file is not opened with Reset . 105 File not open for output Reported by write if a text file isn’t opened with Rewrite . 106 Invalid numeric format Reported when a non-numeric value is read from a text file, and a numeric value was expected. 107 Invalid enumeration Reported when a text representation of an enumerated constant cannot be created in a call to str or write(ln). 150 Disk is write-protected (Critical error) 151 Bad drive request struct length (Critical error) 152 Drive not ready (Critical error) 154 CRC error in data (Critical error) 156 Disk seek error (Critical error) 157 Unknown media type (Critical error) 158 Sector Not Found (Critical error) 159 Printer out of paper (Critical error) 160 Device write fault (Critical error) 161 Device read fault (Critical error) 162 Hardware failure (Critical error) 200 Division by zero The application attempted to divide a number by zero. 201 Range check error If you compiled your program with range checking on, then you can get this error in the following cases: 1. An array was accessed with an index outside its declared range. 2. Trying to assign a value to a variable outside its range (for instance an enumerated type). 202 Stack overflow error The stack has grown beyond its maximum size (in which case the size of local variables should be reduced to avoid this error), or the stack has become corrupt. This error is only reported when stack checking is enabled. 203 Heap overflow error The heap has grown beyond its boundaries. This is caused when trying to allocate memory explicitly with New , GetMem or ReallocMem , or when a class or object instance is created and no memory is left. Please note that, by default, Free Pascal provides a growing heap, i.e. the heap will try to allocate more memory if needed. However, if the heap has reached the maximum size allowed by the operating system or hardware, then you will get this error. 204 Invalid pointer operation You will get this in several cases:

  • if you call Dispose or Freemem with an invalid pointer
  • in case New or GetMem is called, and there is no more memory available. The behavior in this case depends on the setting of ReturnNilIfGrowHeapFails . If it is True , then Nil is returned. if False , then runerror 204 is raised.

205 Floating point overflow You are trying to use or produce real numbers that are too large. 206 Floating point underflow You are trying to use or produce real numbers that are too small. 207 Invalid floating point operation Can occur if you try to calculate the square root or logarithm of a negative number. 210 Object not initialized When compiled with range checking on, a program will report this error if you call a virtual method without having called its object’s constructor. 211 Call to abstract method Your program tried to execute an abstract virtual method. Abstract methods should be overridden, and the overriding method should be called. 212 Stream registration error This occurs when an invalid type is registered in the objects unit. 213 Collection index out of range You are trying to access a collection item with an invalid index ( objects unit). 214 Collection overflow error The collection has reached its maximal size, and you are trying to add another element ( objects unit). 215 Arithmetic overflow error This error is reported when the result of an arithmetic operation is outside of its supported range. Contrary to Turbo Pascal, this error is only reported for 32-bit or 64-bit arithmetic overflows. This is due to the fact that everything is converted to 32-bit or 64-bit before doing the actual arithmetic operation. 216 General Protection fault The application tried to access invalid memory space. This can be caused by several problems: 1. Dereferencing a nil pointer. 2. Trying to access memory which is out of bounds (for example, calling move with an invalid length). 217 Unhandled exception occurred An exception occurred, and there was no exception handler present. The sysutils unit installs a default exception handler which catches all exceptions and exits gracefully. 218 Invalid value specified Error 218 occurs when an invalid value was specified to a system call, for instance when specifying a negative value to a seek() call. 219 Invalid typecast

Thrown when an invalid typecast is attempted on a class using the as operator. This error is also thrown when an object or class is typecast to an invalid class or object and a virtual method of that class or object is called. This last error is only detected if the -CR compiler option is used. 222 Variant dispatch error No dispatch method to call from variant. 223 Variant array create The variant array creation failed. Usually when there is not enough memory. 224 Variant is not an array This error occurs when a variant array operation is attempted on a variant which is not an array. 225 Var Array Bounds check error This error occurs when a variant array index is out of bounds. 227 Assertion failed error An assertion failed, and no AssertErrorProc procedural variable was installed. 229 Safecall error check This error occurs is a safecall check fails, and no handler routine is available. 231 Exception stack corrupted This error occurs when the exception object is retrieved and none is available. 232 Threads not supported Thread management relies on a separate driver on some operating systems (notably, Unixes). The unit with this driver needs to be specified on the uses clause of the program, preferably as the first unit ( cthreads on unix).

Источник

Pascal runtime error 202

Приложения написанные на Free Pascal могут генерировать ошибку времени выполнения (Run Time Error) когда в программе обнаруживаются определённые аварийные состояния . Этот документ содержит список возможных ошибок и описание их возможных причин.

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

Была попытка неправильного вызова системной функции.

2 File not found (Файл не найден)

Генерируется при попытке перенаименования, стирания или открытия несуществующего файла.

3 Path not found (Путь(директория) не найден)

Генерируется файловой системой когда путь не существует или неправелен. Также генерируется при попытке получить доступ к несуществующему файлу.

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

Максимальное число открытых файлов для вашего процесса было превышено. Большинство операционных систем ограничивают максимальное число открытых файлов, и эта ошибка может возникнуть когда этот лимит превышен.

5 File access denied (В доступе к файлу — отказано)

Было запрешено получение доступа к файлу. Эта ошибка может произойти по нескольким причинам:

6 Invalid file handle (Неправильный хэндл файла)

Происходит, когда используемая Вами файловая переменная была обнулена (испорчена); Это говорит о том, что память вашей программы была повреждена.

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

Генерируется когда процедуры reset или rewrite вызываются с неправильным параметром FileMode.

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

Генерируется когда в функции Getdir или ChDir был передан неправильный номер диска.

16 Cannot remove current directory (Невозможно удалить текущую директорию)

Генерируется при попытке удалить текущую директорию.

17 Cannot rename across drives (Можно переименовывать файлы только в пределах одного диска)

Вы не можете переименовать файл в файл, находяшиёся на другом диске или в другом разделе.

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

Генерируется при невозможности произвести чтение с диска. Обычно происходит при попытке чтения данных, после его окончания.

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

Генерируется когда Вы пытаетесь записать данные на переполненый диск.

102 File not assigned (Файл не определён)

Генерируется функциями Reset, Rewrite, Append, Rename и Erase, При передаче в них файловой переменной, для которой не была выполнена функция AssignFile.

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

Генерируется следующими функциями : Close, Read, Write, Seek, EOf, FilePos, FileSize, Flush, BlockRead, и BlockWrite если файл не был открыт.

104 File not open for input (Файл не открыт для чтения) Генерируется функциями Read, BlockRead, Eof, Eoln, SeekEof и SeekEoln если файл не был открыт при помощи Reset.

105 File not open for output (Файл не открыт для записи) Генерируется функцией write если текстовый файл не был открыт при помощи Rewrite.

106 Invalid numeric format(Неправильный числовой формат) Генерируется когда ожидалось числовое значение, но из текстого файла было прочитано не было.

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

151 Bad drive request struct length (Неправильная длина структуры запроса)

152 Drive not ready (Устройство не готово)

154 CRC error in data (Ошибка контрольной суммы в данных) (Критическая ошибка)

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 (Сбой железа)

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

Приложение пыталось разделить число на ноль.

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

Если вы компилировали прогамму с включённой провереой границ, Вы можете получить эту ошибку в следующих случаях:

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

Стек превысил свой максимально допустимый размер (в этом случае необходимо уменьшить размер локальных переменных), или стек был повреждён. Эта ошибка генерируется только с включённой проверкой стека.

203 Heap overflow error (Переполнение кучи)

Размер кучи превысил максимально возможный размер. Генерируется при попытке выделить память непосредственно функциями New, GetMem и ReallocMem, или когда экземпляр класса или объекта создаётся и памяти не достаточно. Пожалуйста учтите что, по умолчанию, Free Pascal поддерживает увеличение кучи, то есть, если необходимо, будет произведена попытка её увеличения. Как бы то ни было, если размер кучи превысил максимально допустимый системой и железом, то Вы получите эту ошибку.

204 Invalid pointer operation (Непрваильная операция с указателем)

Будет сгенерирована при вызове функций Dispose или Freemem с неправильным указателем (чаще всего, Nil)

205 Floating point overflow (Максимальная границы числа с плавающей точкой) Вы попытались использовать или создать слишком большое число с плавающей точкой.

206 Floating point underflow (Минимальная граница числа с плавающей точкой)

Вы попытались использовать или создать слишком маленькое число с плавающей точкой.

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

Может генерироваться если вы попытались получить квадратный корень или логарифм отрицательного числа.

210 Object not initialized (Объект не инициализирован)

Если программа была скомпилирована с включенной проверкой границ, эта ошибка будет сгенерирована при попытке вызвать виртуальный метод до его конструктора.

211 Call to abstract method (Попытка вызова абстрактного метода)

Ваша программа попыталась вызвать абстрактный виртуальный метод. Абстрактные методы должны быть перекрыты, и только перекрытый метод должен быть вызван.

212 Stream registration error (Ошибка регистрации потока)

Генерируется когда неправильный тип регистрируется в модуле objects.

213 Collection index out of range (Индекс элемента коллекции выходит за допустимые границы)

Генерируется когда Вы попытались обратиться к элементу коллекции с выходящим за допустимые границы индексом (модуль objects).

214 Collection overflow error (Переполнение коллекции) Размер коллекции превысил максимально допустимый размер, а Вы попытались добавить новый элемент (модуль objects).

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

Эта ошибка генерируется когда результат операции превысил допустимые границы. В отличие to Turbo Pascal, эта ошибка генерируется только для 32-bit и 64-bit арифметических переполнений. Это происходит согласно тому, что все операнды конвертируются в 32-bit или 64-bit, до того как производить вычисления.

216 General Protection fault (GP Ошибка защиты памяти)

Приложение попыталось обратиться к недопустимому участку памяти. Это может быть вызвано следующими причинами:

217 Unhandled exception occurred (Произошо неизвестное исключение)

Произошло исключение, и для него не существеет хэндла. Модуль sysutils устанавливает handler(менеджер), который отлавливает все исключения, и безопасно выходит в случае обнаружения оного.

219 Invalid typecast (Неправильное приведение типов)

Генерируется когда недопустимое приведение типов производится над классом используя оператор as. Эта ошибка также генерируется, когда объект или класс приводится к недопустимому объекту или классу, и виртуальный метод этого объекта или класса вызывается. Эта последняя ошибка детектируется только с использованием опции -CR компилятора.

227 Assertion failed error (Сбой утверждения)

Утверждение провалено, и процедурная переменная AssertErrorProc не была уcтановлена.

Источник

Модератор: Модераторы

exited with exitcode = 202/217

Здравствуйте. Решил попробовать среду FreePascal и наткнулся на ошибку при выполнении простой программы:

Код: Выделить всё
unit MyClasses;

interface

type
  TMyClass = class(TObject)
      function GetProperty():string;
      procedure SetProperty(str:string);
      property TheProperty:string read GetProperty write SetProperty;

    end;

implementation

procedure TMyClass.SetProperty(str:string);
begin
  TheProperty:=str;
end;

function TMyClass.GetProperty():string;
begin
  Result:=TheProperty;
end;

end.

И тело программы

Код: Выделить всё
program WHF;

uses
  MyClasses;

var
  MyClass:TMyClass;

begin  (* main *)
  MyClass:=TMyClass.Create;
  MyClass.TheProperty :='qwerty';
  WriteLn('Property = '+MyClass.TheProperty);
  MyClass.Free;
  ReadLn();
end.   (* main *)

Программа вылетает с кодом 202. Забавно то, что если дописать к юнитам Math, то код ошибки меняется на 217.
Если не использовать в описании класса свойство (property), а, например, оформить MyProperty как поле, а в основном теле программы явно вызывать методы GetProperty/SetProperty, то всё работает как надо.

В настройках компилятора я поставил Delphi compatible. Очень надеюсь на Вашу помощь, так как опыта у меня немного, и очень хотелось бы перейти cо среды Borland Delphi на бесплатный софт. Заранее спасибо.

fondreykus-1
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.07.2010 14:07:01

Re: exited with exitcode = 202/217

Сообщение Mr.Smart » 09.07.2010 15:55:02

Значит так. Разложим по полкам.
У вас при чтении свойства TheProperty вызывается функция GetProperty, а при записи процедура SetProperty.
Загляним ка в функцию чтения

Код: Выделить всё
function TMyClass.GetProperty():string;
begin
  Result:=TheProperty;
end;

и что мы видим :shock: это же чистой воды бесконечная рекурсия и отсюда безбожное переполнение стека :shock:
данный код преобразуется в следующее:

Код: Выделить всё
function TMyClass.GetProperty():string;
begin
  Result:=GetProperty;
end;

я думаю, что не стоит смотреть процедуру запись… :mrgreen:

Добавлено спустя 2 минуты 26 секунд:
Да ещё, чуть не забыл.

…так как опыта у меня немного, и очень хотелось бы перейти cо среды Borland Delphi на бесплатный софт…

Из вашего повествования выходит, что опыт у вас есть в Делфи, а вот в Лазарусе его совсем не много! Так, я правильно понял? Но у меня закрались сомнения на счёт вашего опыта…
Я могу вам дать один совет! Читайте матчасть!

Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: exited with exitcode = 202/217

Сообщение fondreykus-1 » 09.07.2010 16:03:57

Спасибо большое) Теперь ясно. Буду читать матчасть)

fondreykus-1
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.07.2010 14:07:01


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: Google Adsense [Bot] и гости: 2

0 / 0 / 3

Регистрация: 02.02.2012

Сообщений: 44

1

26.06.2012, 18:20. Показов 3544. Ответов 4


У меня и в колледже и дома стоит SchoolPack. Но дома, когда я делаю одну работу возникает ошибка 202: Ошибка переполнения стека. В колледже такого нет (видимо немного другая версия). Как исправить эту ошибку?
P.S: Ошибка эта возникает в процедуре, в которой я использую много переменных

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Почетный модератор

64272 / 47571 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

26.06.2012, 19:19

2

202 Stack overflow error (Переполнение стека).
Эта ошибка генерируется на входе в процедуру или функцию, скомпилированную в режиме {$S+}, в случае, если нет достаточной области для размещения локальных переменных подпрограммы. Увеличьте размер стека, используя директиву компилятора {$М}.

Наверняка куча лишних переменных, занимающих места больше чем нужно, типа строки из 255 символов, когда нужно максимум 20, матрицы 100х100, хотя больше 10 и не нужно и так далее.



0



1 / 1 / 0

Регистрация: 13.06.2012

Сообщений: 53

26.06.2012, 19:26

3

Цитата
Сообщение от SidSpears
Посмотреть сообщение

У меня и в колледже и дома стоит SchoolPack. Но дома, когда я делаю одну работу возникает ошибка 202: Ошибка переполнения стека. В колледже такого нет (видимо немного другая версия). Как исправить эту ошибку?
P.S: Ошибка эта возникает в процедуре, в которой я использую много переменных

А если попробывать процедуру в модуль запихнуть?



0



0 / 0 / 3

Регистрация: 02.02.2012

Сообщений: 44

26.06.2012, 20:06

 [ТС]

4

Цитата
Сообщение от Puporev
Посмотреть сообщение

Наверняка куча лишних переменных, занимающих места больше чем нужно, типа строки из 255 символов, когда нужно максимум 20, матрицы 100х100, хотя больше 10 и не нужно и так далее.

Изменил все integer на byte, массив записи урезал со 100 до 30 — то же самое

Миниатюры

202: Ошибка переполнения стека
 



0



Почетный модератор

64272 / 47571 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

26.06.2012, 20:10

5

Попробуй увеличить стек

Цитата
Сообщение от Puporev
Посмотреть сообщение

Увеличьте размер стека, используя директиву компилятора {$М}.

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



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

26.06.2012, 20:10

5

201      : range error

215      : overflow checking when doing computation with integer

202      : overflow stack

106      : invalid numeric format

1          : invalid function number

2          : file not found

3          : path not found

4          : too many open files

5          : file access denied

6          : invalid file handle

12        : invalid file access code

15        : invalid drive number

16        : cannot remove current directory

17        : cannot rename across

18        : no more files

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

150      : disk is write protected

151      : bad drive request structure length

152      : drive not ready

154      : CRC error in data

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

200      : div by zero

203      : heap overflow

204      : invalid pointer operation

205      : floating point overflow

206      : floating point underflow

207      : invalid floating point operation

208      : overlay manager not installed

209      : overlay file read error

210      : object not initialized

211      : call to abstract method

212      : stream registration error

213      : collection index out of range

214      : collection overflow error

216      : general protection fault

217      : invalid operation code

227      : assertion failed

300      : file IO error

301      : non-matched array bounds

302      : non-local procedure pointer

303      : procedure pointer out of scope

304      : function not implemented

305      : breakpoint error

306      : break by ctrl/c

307      : break by ctrl/break

308      : break by other process

309      : no floating point coprocessor

310      : invalid variant type operation

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Runtime error 201 pascal
  • Runtime error 200 dos
  • Runtime error 200 at pascal
  • Runtime error 19 file or function is not found samp
  • Runtime error 1722 сервер rpc недоступен

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии