Bonjour
je complète un peu.
La gestion des erreurs dépends avant tout de quelle erreur on parle.
- La syntaxe, rien sous AutoIt, mais scite lui te donnera la ligne qui pose 1 pb.
- Erreur à l'exécution, comme dis avant, les macros @Error et @Extend et la c'est à toi de tout coder.
- Mais certaine erreur ne sont pas gérer par AutoIt, par exemple quand tu utilises des Objets Com, accès a une base ou l'éxécution d'une requête.
LA il te faut explicitement dire à ton objet et à AuotIt de la gérer généralement chaque objet à un retour en cas d'erreur donc récupérer cet évènement et le faire traiter par une de tes fonctions.
Code : Tout sélectionner
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc"), $EventError = 0
Func MyErrFunc()
Local $msg, $HexNumber = Hex($oMyError.number, 8)
Switch $HexNumber
Case "_80020009"
$msg = MsgBox(4 + 16, " Erreur " & $oMyError.scriptline, _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
"Risque de doublons" & @LF & @LF & "continuer ?")
SetError(1, 1)
Case Else
$msg = MsgBox(4 + 16, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
"err.number is: " & @TAB & $HexNumber & @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
"err.source is: " & @TAB & $oMyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.helpcontext & @CRLF & @CRLF & _
"Continuer ???")
SetError(1, 9)
EndSwitch
If $msg <> 6 Then Exit
EndFunc ;==>MyErrFunc