Functions > Misc >


SetError

Définit manuellement la valeur de la macro @error (et optionnellement @extended et la "Valeur de retour").

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

Paramètres

code La valeur requise (integer) pour définir la macro @error.
extended [optionnel] La valeur entière de la macro @extended. Ceci définit la même macro que la fonction SetExtended().
return value [optionnel] La valeur qui sera retournée par la fonction - si aucun paramètre n'est utilisé la valeur de retour est indéfinie.

Valeur de retour

Retourne le paramètre "return value" (indéfinie si le paramètre n'est pas utilisé).
@error et @extended seront définies avec les valeurs défiinies dans l'appel de la fonction (les deux par défaut = 0).

Remarques

Lorsque vous entrez dans une fonction, @error est remis à 0. A moins que SetError() ne soit appelée, dans ce cas @error restera à 0 à la sortie de la fonction. Cela signifie que vous devez sauvegarder le statut de @error dans une variable si vous la tester dans une boucle While-WEnd.

Le paramètre extended est optionnel. Il est seulement prévu comme un moyen de définir à la fois @error et @extended au même moment. Si vous avez seulement besoin de définir @extended, alors il est recommandé d'utiliser la fonction SetExtended() à la place.

Le paramètre "return value" est optionnel. Il est prévu comme un moyen d'utiliser la syntaxe Return SetError(...) pour définir la valeur qui doit être retournée en même temps que le paramètre @error (et éventuellement @extended). Si aucune valeur spécifique n'est définie alors la valeur de retour sera indéfinie et ne doit pas être utilisée par le code.

@error est compris dans la plage de valeurs de -2147483648 à 2147483647.

En relation

SetExtended

Exemples

Exemple 1

#include <MsgBoxConstants.au3>

Local $fResult = myDiv(5, 0)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Erreur", "Division par Zéro")
Else
    MsgBox($MB_SYSTEMMODAL, "Résultat", $fResult)
EndIf
Exit

Func myDiv($iDividend, $iDivisor)
    If $iDividend = 0 And $iDivisor = 0 Then
        SetError(2) ; Forme indéterminée 0/0.
    ElseIf $iDivisor = 0 Then
        SetError(1) ; Division par zéro.
    EndIf
    Return $iDividend / $iDivisor
EndFunc   ;==>myDiv


Exemple 2

#include <MsgBoxConstants.au3>

Local $sReturn = Example()

; Affiche la valeur de retour, @error et @extended.
MsgBox($MB_SYSTEMMODAL, "", "Valeur de retour = " & $sReturn & @CRLF & _
        "Valeur de @error: " & @error & @CRLF & _
        "Valeur de @extended: " & @extended)

Func Example()
    ; Définit @error à 3, @extended à 10 et retourne la chaîne "Une valeur de retour quelconque."
    Return SetError(3, 10, "Une valeur de retour quelconque") 
EndFunc   ;==>Example