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