Except

Szczawik

Except - słowo kluczowe języka Delphi

Słowo kluczowe except jest nieodłącznym elementem konstrukcji try .. except ... end;.

Służy do obsługi mechanizmu wyjątków. Wyrażenia z zastosowaniem tego słowa kluczowego mają postać następującą:

try
//instrukcje mogące wywołać wystąpienie wyjątku
except
//instrukcje wykonywane w razie wystąpienia wyjątku
end;

Jeśli w bloku instrukcji, które mogą wywołać wyjątek, tenże nie wystąpi, wykonywana jest następna instrukcja po słowie kluczowym End. Jeśli jednak wyjątek wystąpi, wszystkie instrukcje od rozkazu wywołującego wyjątek do słowa kluczowego except są pomijane, a wykonywane są instrukcje z bloku występującego po tym słowie kluczowym. Po ich zakończeniu wystąpienie wyjątku zostaje przerwane, a sterowanie zostaje już normalnie przekazane do instrukcji znajdującej się po słowie End.

Blok except pozwala również na obsługę różnych wyjątków w różny sposób, co pokazuje poniższy przykład:

try
//instrukcje mogące wywołać wystąpienie wyjątku
except
  on EZeroDivide do ObslugaDzieleniePrzezZero();
  on EOverflow do ObslugaPrzepelnienia();
  else
    ObslugaInnychWyjatkow();
  end;

Pominięcie słowa kluczowego else i nie zdefiniowanie obsługi dla wyjątku, który właśnie wystąpił powoduje jego przeniesienie poza dany blok try .. except ... end;

Konstrukcja kodu z użyciem except pozwala również na wykonanie obsługi zależnie od parametrów wyjątku, a nie tylko jego typu, co pokazuje poniższy przykład:

try
//instrukcje mogące wywołać wystąpienie wyjątku
except
  on E: Exception do ShowMessage(E.Message+' '+IntToStr(E.HelpContext));
  end;

Praktyczne wykorzystanie obsługi wyjątków można zobaczyć na poniższym przykładzie:

try
  Y := A/B;
except
  on EZeroDivide do
    begin
    ShowMessage('Dzielenie przez 0!');
    Y := 0;
    end;
  end;

Zobacz też:

0 komentarzy