Wyjątek i wyjście z pętli

0

Czy, jeśli wystąpi wyjątek, to takie wyjście/wyskok z pętli jest prawidłowy? Chodzi o... Exit.

Suma := 0;
  for i := ListView1.Items.Count-1 downto 0 do
  if ListView1.Items.Item[i].Selected
    then
    begin
    try
    Suma := Suma + StrToFloat(ListView1.Items[i].SubItems[0]);
    lblZaznacz.Caption := FloatToStr(Suma);
    Application.ProcessMessages;
    except
    ShowMessage('Wpisana wartość nie jest liczbą. Kolumna 2 linia '+ IntToStr(i+1));
    Exit;
    end;
    end; 
1

Exit; - wychodzi z procedury/funkcji
Break; - wychodzi z pętli

"Nieprawidłowe wyjścia" - nie istnieją.
Application.ProcessMessages; - należy używać bardzo ostrożnie, tu akurat niezbyt bezpiecznie to użyte.

1

jeśli spodziewasz się błędu przy konwersji do liczby to zamiast StrToFloat użyj StrToFloatDef lub TryStrToFloat, jeśli spodziewasz się, że może nie być itemu zerowego to sprawdzaj to ifem

0

Dzięki za wskazówki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1