Funktionreferenz


SetError

Beschreibung anzeigen in

Manuelles Setzen des Wertes des @error-Makros (optional @extended und Rückgabewert).

SetError ( code [, extended = 0 [, return value]] )

Parameter

code Der gewünschte Wert (als Ganzzahl), auf den @error gesetzt werden soll.
extended [optional] (Standard 0) Der gewünschte Wert (als Ganzzahl), auf den @extended gesetzt werden soll. Dies setzt denselben Wert wie die SetExtended() Funktion.
return value [optional] (Standard 1) Der Rückgabewert dieser Funktion

Rückgabewert

Gibt den Wert von Parameter "return value" (Rückgabewert) zurück.
@extended werden auf die angegebenen Parameter gesetzt.

Bemerkungen

Bei der Eingabe einer vom Benutzer geschriebenen Funktion wird das Makro @error auf 0 gesetzt. Wenn SetError() nicht aufgerufen wird, bleibt @error am Ende der Funktion auf 0. Das bedeutet, dass @error nach einer Funktion nur dann gesetzt werden kann, wenn es explizit gesetzt wird. Das bedeutet auch, dass man den Status von @error in einer Variablen sichern muss, wenn man ihn in einer While-WEnd-Schleife testet.
Der "extended"-Parameter ist optional. Er ist zur Verfügung gestellt, um @error und @extended zur gleichen Zeit ändern zu können. Wenn nur @extended gesetzt werden muss, wird empfohlen, die SetExtended() Funktion zu verwenden.
Der Parameter des Rückgabewerts ist optional. Es ist als eine Möglichkeit zu sehen, die zur Verwendung des Return SetError(...) Syntax bereitgestellt wird um den Wert zu definieren, der zur gleichen Zeit wie @error (und möglicherweise @extended) gesetzt wird. Falls kein bestimmter Wert gesetzt wird, so wird der Rückgabewert auf 1 gesetzt, da SetError() eine erfolgreiche Funktion ist.

@error kann Werte von -2147483648 bis 2147483647 annehmen.

Verwandte Funktionen

SetExtended, Return

Beispiel

Beispiel 1

#include <MsgBoxConstants.au3>

Local $fResult = myDiv(5, 0)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Fehler", "Teilung durch Null")
Else
    MsgBox($MB_SYSTEMMODAL, "Ergebnis", $fResult)
EndIf
Exit

Func myDiv($iDividend, $iDivisor)
    If $iDividend = 0 And $iDivisor = 0 Then
        SetError(2) ; Nicht ermittelbare Form 0/0
    ElseIf $iDivisor = 0 Then
        SetError(1) ; Teilung durch Null
    EndIf
    Return $iDividend / $iDivisor
EndFunc   ;==>myDiv

Beispiel 2

#include <MsgBoxConstants.au3>

Local $sReturn = Example()

; Zeigt den Rückgabewert, @error und @extended Wert.
MsgBox($MB_SYSTEMMODAL, "", "Rückgabewert = " & $sReturn & @CRLF & _
        "Der Wert von @error lautet: " & @error & @CRLF & _
        "Der Wert von @extended lautet: " & @extended)

Func Example()
    Return SetError(3, 10, "Irgendein Rückgabewert") ; Setzt @error auf 3, @extended auf 10 und gibt die Zeichenfolge "Irgendein Rückgabewert" zurück.
EndFunc   ;==>Example