Throw [v1.1.04+]

Signalisiert das Vorkommen eines Fehlers. Dieses Signal kann mit einer Try-Catch-Anweisung abgefangen werden.

Throw , Ausdruck

Parameter

Ausdruck

[v1.1.05+]: Wenn weggelassen, wird ein Exception-Objekt mit einer Standardmeldung ausgelöst.

Andernfalls geben Sie einen Wert an, der in die Ausgabevariable von Catch gespeichert werden soll.

Da dieser Parameter ein Ausdruck ist, sind alle der folgenden Zeilen gültig:

throw 3
throw "direkt geschriebene Zeichenkette"
throw MeineVar
throw i + 1
throw { what: "Benutzerdefinierter Fehler", file: A_LineFile, line: A_LineNumber } ; Übergibt ein Objekt

Dieser Parameter ist immer ein Ausdruck, daher sollten Variablenreferenzen nur mit Prozentzeichen umschlossen werden, wenn eine Doppeldereferenz (double-deref) beabsichtigt ist.

Exception()

Erstellt ein Objekt mit Eigenschaften, die auch für via Laufzeitfehler erzeugte Ausnahmen üblich sind.

Exception(Message , What, Extra)

Dieses Objekt enthält die folgenden Eigenschaften:

Wenn What weggelassen wird, wird standardmäßig der Name der aktuellen Funktion oder Subroutine verwendet. Andernfalls geben Sie eine Zeichenkette oder einen negativen Offset vom Anfang der Aufrufliste an. Zum Beispiel bewirkt -1, dass Exception.What auf die aktuelle Funktion oder Subroutine gesetzt wird, und dass Exception.Line und Exception.File auf die Zeile und Datei gesetzt wird, die die Funktion oder Subroutine aufgerufen hat. Wenn das Skript jedoch kompiliert ist oder der Offset ungültig ist, wird What einfach in eine Zeichenkette umgewandelt.

Message und Extra werden in Zeichenketten umgewandelt. Diese werden in einem Fehlerdialogfenster angezeigt, wenn die Ausnahme ausgelöst, aber nicht abgefangen wurde.

try
    EineFunktion()
catch e
    MsgBox % "Fehler in " e.What ", das auf Zeile " e.Line " aufgerufen wurde." 

EineFunktion() {
    throw Exception("Fehler", -1)
}

Try, Catch, Finally, OnError()

Beispiele

Siehe Try.