throw
Die EGL-Anweisung 'throw' gibt eine Ausnahmebedingung an, die ausgelöst werden soll. Dies hat die folgenden Effekte:
- Die Programmverarbeitung wird eingestellt.
- Wird die Ausnahmebedingung innerhalb eines try-Blocks ausgelöst, wird die Steuerung an den ersten geeigneten onException-Block in diesem try-Block übergeben. Details hierzu finden Sie in try.
- Wir die Ausnahmebedingung nicht innerhalb eines try-Blocks ausgelöst, wird das Programm mit der Nachricht im angegebenen Ausnahmedatensatz beendet.
Geben Sie einen Ausnahmebedingungsausdruck (einen Ausdruck, der in den Typ einer Ausnahmebedingungsvariablen aufgelöst wird; siehe
Der Stereotyp 'Exception') mit der Anweisung 'throw' an.
Solch ein Ausdruck kann beispielsweise die folgenden beiden Formate annehmen:
// Wenn die Ausnahmebedingung bereits definiert ist
nullEx NullValueException;
...
throw nullEx;
// Definieren und deklarieren
Record CustomerException type Exception
customerNumber INT;
end
...
throw new customerException {
customerNumber = custNum,
message = "Illegal customer number" };
Ausnahmebedingungen werden vom Fehlerpunkt ausgehend nach oben weitergegeben. Eine try-Anweisung kann Ausnahmebedingungen bearbeiten, die in beliebigen Funktionen auftreten, die über den try-Block aufgerufen werden, unabhängig davon, wie tief diese Funktionen verschachtelt sind. Weitere Informationen zum Prozess der Ausnahmebedingungsbehandlung finden Sie unter Ausnahmebedingungsbehandlung.
Syntax

- Ausnahmebedingungsausdruck
- Ein Ausdruck, dessen Wert denselben Typ aufweist wie eine Ausnahmebedingungsvariable.
Kompatibilität
| Plattform | Problem |
|---|---|
| V6-Ausnahmebedingungskompatibilitätsmodus | Ist die Programmeigenschaft 'v60ExceptionCompatibility' auf YES gesetzt, ist die Anweisung 'throw' nicht gültig. |