Недавно начал учиться программированию, ещё более недавно - Паскалю в Лазарусе.
Делаю незамысловатую игру, пока что без сторонних библиотек, средствами ИДЕ. ОС - Линукс Xubutnu.
Возникает периодически ошибка такого плана:
Проект вызвал класс исключения 'External: Unknown exception code 8'.
В файле 'laztracer.pas' на строке 50
LazTracer, в свою очередь, указывает на такую строку:
procedure RaiseGDBException(const Msg: string);
begin
DebugLn(lrsERRORInCode, Msg);
// creates an exception, that gdb catches:
DebugLn(lrsCreatingGdbCatchableError);
DumpStack;
{$ifndef HASAMIGA} // On Amiga Division by 0 is not catchable, just crash
if (length(Msg) div (length(Msg) div 10000))=0 then ;
{$endif}
end;
Происходит это временами, всё чаще. Последний раз после того, как в модуле попытался присвоить переменной случайное значение:
function filler(var name: string): Oblast;
var
Obl: Oblast;
RandBG: integer;
begin
Randomize;
RandBG:= Random(3);
После этого я изменил код, удалив всё, что написал с момента, когда программа работала исправно:
function filler(var name: string): Oblast;
var
Obl: Oblast;
begin
Не помогло. Тогда запустил программу без ИДЕ. Она тоже сообщила о делении на ноль, но, после того, как я проигнорировал это сообщение, запустилась. И через ИДЕ после этого снова всё собралось... А потом (ничего не менял, просто попробовал ещё раз запустить в ИДЕ) - опять не работало...
Короче, я не вижу связи между этим сообщением и своими действиями. То работает, то нет.
Иногда появляется сообщение и после каких-то других действий. Откатываюсь назад, пишу снова вроде то же самое - работает.
Короче, работать невозможно. Подскажите, в чём может быть беда. Или хотя бы направление, в котором надо копать.
Спасибо.