Raise

Adam Boduch

raise - słowo kluczowe języka Delphi

Słowo kluczowe raise służy do tworzenia klasy wyjątku. Spójrzmy na poniższy kod:

  if Length(myEdit.Text) = 0 then
    raise Exception.Create('Wpisz jakiś tekst w polu myEdit!');

W przypadku gdy użytkownik nic nie wpisze w polu myEdit, zostanie wygenerowany wyjątek. Wyjątki są generowane za pomocą klasy Exception. Na razie należy zapamiętać, że słowo raise umożliwia generowanie wyjątków poza blokiem Try..Except.

Pozostawienie słowa raise samego, jak w poniższym przypadku, spowoduje wyświetlenie domyślnego komunikatu o błędzie:

try
  { jakieś funkcje }
except
  raise;
end;

Jeżeli w tym przypadku w bloku Try znajdą się instrukcje, które doprowadzą do wystąpienia błędu, to słowo kluczowe raise spowoduje wyświetlenie domyślnego komunikatu o błędzie dla tego wyjątku.
Nie można jednak używać samego słowa raise poza blokiem Try..Except ? w takim przypadku zostanie wyświetlony komunikat o błędzie: [Error] Unit1.pas(29): Re-raising an exception only allowed in exception handler.

Zobacz też:

2 komentarzy

pootek dobrze prawi.

Może coś nie tak myślę, ale słownictwo użyte w tym artykule jest raczej nieodpowiednie.
Jeśli się nie mylę, słówko raise odpowiada throw z języka C. Jeśli tak, to raise rzuca wyjątek, a nie "tworzy klasę wyjątku". Ponadto samo słówko raise nie wyświetla wtedy żadnego domyślnego komunikatu, lecz ponownie wyrzuca złapany wyjątek, umożliwiając jego obsługę w bloku wyższego poziomu.
Mogę się mylić, ale nie wydaje mi się.