Cześć, mam niezłą zagwozdkę i nie potrafię sobie z nią poradzić. Chyba nie obejdzie się bez użycia goto.
Mam kod w bloku: try..finally
Jeśli w środku zajdą określone warunki, program ma przeskoczyć do finally:
try
//jakiś kod
if (warunek) and (warunek2) then
begin
//jakiś kod
Abort;
end;
//jakiś kod
finally
//jakiś kod
end;
Problem polega na tym, że Abort zachowuje się dość dziwnie. Teoretycznie wskakuje mi do finally, ale potem dzieją się jakieś dziwne rzeczy. Finally jakby nie przechwytywało tego wyjątku. Bo potem nie wykonuje się kod, który powinien.
Da się to zrobić jakoś bez goto i tworzenia kolejnych funkcji?
[dopisane]
Właśnie się okazało, że nie można użyć w tym wypadku goto - kompilator nie pozwala.