Function Reference


Manually set the value of the @error macro (and optionally @extended, and "Return Value").

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


code The required value (integer) to set into the @error macro.
extended [optional] The required value (integer) to set into the @extended macro. This sets the same macro as the SetExtended() function.
return value [optional] The value to be returned by the function - if no parameter used the return value is undefined.

Return Value

Returns the "return value" parameter (undefined if the parameter is not used).
@error and @extended will be set to the values set in the function call (both default = 0)


When entering a function @error is set to 0. Unless SetError() is called, then @error will remain 0 when the function ends. This means that in order for @error to be set after a function, it must be explicitly set. This also means you may need to backup the status of @error in a variable if you are testing it in a While-WEnd loop.
The extended parameter is optional. It is provided as a way to set both @error and @extended at the same time. If only @extended needs to be set, then it is recommended to use the SetExtended() function instead.
The return value parameter is optional. It is provided as a way to use the Return SetError(...) syntax to define the value to be returned at the same time as setting @error (and possibly @extended). If a specific value is not set then the return value will be undefined and should not be used subsequently by the code.

@error is limited between the values of -2147483648 to 2147483647.




Example 1

#include <MsgBoxConstants.au3>

Local $fResult = myDiv(5, 0)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Error", "Division by Zero")
    MsgBox($MB_SYSTEMMODAL, "Result", $fResult)

Func myDiv($iDividend, $iDivisor)
    If $iDividend = 0 And $iDivisor = 0 Then
        SetError(2) ; Indeterminate form 0/0.
    ElseIf $iDivisor = 0 Then
        SetError(1) ; Plain division by zero.
    Return $iDividend / $iDivisor
EndFunc   ;==>myDiv

Example 2

#include <MsgBoxConstants.au3>

Local $sReturn = Example()

; Display the return value, @error and @extended value.
MsgBox($MB_SYSTEMMODAL, "", "Return value = " & $sReturn & @CRLF & _
        "Value of @error is: " & @error & @CRLF & _
        "Value of @extended is: " & @extended)

Func Example()
    Return SetError(3, 10, "Some return value") ; Set @error to 3, @extended to 10 and return the string "Some return value."
EndFunc   ;==>Example