Exception и Рекурсия в ФастСкрипте
{
Уважаемые разработчики большая просьба проверить этот код
}
procedure DoIt(i:integer);
var sl:TStrings;
A:Double;
begin
sl:=TStringList.Create;
try
if i=2 then
A:=1/0;
if i=2 then Exit
else DoIt(i+1);
finally
ShowMessage(sl);
sl.free;
end;
end;
begin
DoIt(1);
end.
{
В результате возникнет АВ.
Т.к. при рекурсии и екцепшине судя по всему
теряется локальность переменных. Без екцепшина все проходит нормально.
Заранеее благодарен за ответ.
}
Уважаемые разработчики большая просьба проверить этот код
}
procedure DoIt(i:integer);
var sl:TStrings;
A:Double;
begin
sl:=TStringList.Create;
try
if i=2 then
A:=1/0;
if i=2 then Exit
else DoIt(i+1);
finally
ShowMessage(sl);
sl.free;
end;
end;
begin
DoIt(1);
end.
{
В результате возникнет АВ.
Т.к. при рекурсии и екцепшине судя по всему
теряется локальность переменных. Без екцепшина все проходит нормально.
Заранеее благодарен за ответ.
}