Définit manuellement la valeur de la macro @error (et optionnellement @extended et la "Valeur de retour").
SetError ( code [, extended = 0 [, return value]] )
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. |
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.
#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
#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