Exception auslösen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Den try-Block erstellen

Um eine den Programmablauf störende Fehlerbedingung zu signalisieren, können Sie eine Exception auslösen, indem Sie eine Instanz eines Exception-Objekts erstellen, das die Fehlerbedingung beschreibt, und das reservierte Wort raise verwenden.

Das Auslösen einer Exception erfolgt mit dem reservierten Wort raise und der Angabe einer Instanz des Exception-Objekts. Damit wird angezeigt, dass die Exception von einer bestimmten Adresse stammt. Wenn eine Exception-Behandlungsroutine diese Exception verarbeitet, wird die Exception-Instanz nach der Behandlung freigegeben. Die Freigabe muss also nicht manuell erfolgen.

Ein Beispiel bildet die folgende Deklaration:

type
  EPasswordInvalid = class(Exception);

Sie können eine Exception wegen eines ungültigen Kennworts durch den Aufruf von raise mit einer Instanz von EPasswordInvalid auslösen:

if Password <> CorrectPassword then
  raise EPasswordInvalid.Create('Incorrect password entered');


Die Exception-Adresse wird mit der Variablen ErrorAddr in der Unit System bereitgestellt. Beim Auslösen einer Exception wird dieser Variablen die Adresse zugewiesen, an der die Anwendung die Exception ausgelöst hat. Sie können in Exception-Behandlungsroutinen auf ErrorAddr zugreifen, um beispielsweise dem Benutzer mitzuteilen, wo der Fehler aufgetreten ist. Sie können zudem in der raise-Anweisung einen Wert angeben, der ErrorAddr zugewiesen wird, wenn eine Exception ausgelöst wird.

Warnung:  Weisen Sie der Variablen ErrorAddr keinen Wert direkt zu. Diese Variable ist als schreibgeschützte Variable konzipiert.

Die Angabe der Fehleradresse für eine Exception erfolgt mit dem reservierten Wort at hinter der Exception-Instanz sowie einem Adressausdruck (beispielsweise einem Bezeichner).

Siehe auch