jpascal a écrit :C'est à cause de cela qu'il vaut mieux utiliser la fonction SetError() ?
Par exemple, au lieu de faire...
Code : Tout sélectionner
Func _division1($a, $b, ByRef $resultat)
If $b <> 0 Then
$resultat = $a / $b
Return True
Else
Return False
EndIf
EndFunc ;==>_division1
... on peut faire
Code : Tout sélectionner
Func _division2($a, $b)
If $b <> 0 Then
Return $a / $b
Else
Return SetError(1)
EndIf
EndFunc ;==>_division2
Je me suis inspiré des exemples de
Un problème bien ennuyeux. On voit que dans certains cas il ne sera pas facile de retourner une valeur (comme 1, 0, True ou False) indiquant qu'une erreur s'est produite.
En plus il pourrait avoir plusieurs types d'erreurs...
Code : Tout sélectionner
Func _division3($a, $b)
If $b = 0 Then
SetError(1)
ElseIf $a = 0 Then
Return SetError(2)
ElseIf $a < 0 Then
Return SetError(3)
EndIf
Return $a / $b
EndFunc ;==>_division3
Dans cet exemple, on ne pourrait pas retourner un nombre pour indiquer le type d'erreur dans ce cas puisque la fonction _division3 retourne déjà un nombre.