Page 1 sur 1

[R] Ignorer les erreurs d'autoit

Posté : jeu. 11 juil. 2013 22:39
par yohan8
Bonjour,

Lorsque je lance mon script la fonction _ffLinksGetAll me renvois parfois une erreur, ce qui est prévus.
Or lorsque le script est compilé, le programme m'affiche cette erreur dans une fenêtre et met le script en pause.

J'aimerais ignorer ces erreurs ou les rendre silencieuses.

C'est le même problème que dans ce topic :
http://www.autoitscript.fr/forum/viewto ... ?f=3&t=798
Sauf que la résolution de celui-si utilise une fonction qui n'existe plus..


Yohan :)

Re: [..] Ignorer les erreurs d'autoit

Posté : jeu. 11 juil. 2013 22:48
par Tlem
Le plus simple est de gérer l'erreur dans la fonction !

Re: [..] Ignorer les erreurs d'autoit

Posté : jeu. 11 juil. 2013 23:02
par yohan8
Dans la fonction _FFLinksGetAll ?
J'ai ouvert un peu le fichier FF.au3 pour détecter la ligne qui me renvois l'erreur "_FFLinksGetAll ==> General Error"

Et effectivement j'ai trouvé la ligne :

Code : Tout sélectionner

SetError(__FFError($sFuncName, $_FF_ERROR_GeneralError))
Je l'ai supprimé et je n'ai plus de message d'erreur :)

Mais je pense pas que la personne qui a codé ce fichier FF.au3 n'aimerait que je modifie son script.
Le script est stable et fonctionne car il a été conçu tel quel, le modifier pourrait m'apporter d'autre ennuis..

Re: [R] Ignorer les erreurs d'autoit

Posté : jeu. 11 juil. 2013 23:11
par Tlem
SetError permet la gestion d'erreur. Si vous ne traitez pas les erreurs renvoyées par cette fonction, dans ce cas cette ligne ne vous sert à rien.

Ensuite, vous nous indiquez une erreur, mais sans plus de précision. Si vous avez l'intention de conserver cette ligne (afin de gérer les erreurs), alors vous devez chercher ce qui provoque l'erreur initiale.

A première vue, je dirais que c'est l'appel à la fonction __FFError() qui provoque l'erreur. Étudiez de plus prêt les valeurs traitées et/ou le code de la fonction afin de comprendre pourquoi ca 'plante'.

Re: [R] Ignorer les erreurs d'autoit

Posté : ven. 12 juil. 2013 10:40
par yohan8
Bien vu !

En fouillant de nouveau dans l'include _FF.au3 j'ai trouvé la fonction _FFError et à ma grande surprise j'ai trouvé ces lignes :

Code : Tout sélectionner

        If @Compiled Then
;~          If $_FF_ERROR_MSGBOX And $i_FF_ERROR < 6 Then MsgBox(16, "FF.au3 Error:", $sMsg)
            DllCall("kernel32.dll", "none", "OutputDebugString", "str", $sMsg)
        EndIf
Je n'ai pas encore fouillé dans toutes les includes mais c'est la première que j'en vois une qui intègre une MsgBox pour afficher (et mettre en pause le script) les erreurs.

J'ai donc désactivé la ligne contenant le MsgBox, mais à quoi sert le fichier "kernel32.dll" ?

Re: [R] Ignorer les erreurs d'autoit

Posté : ven. 12 juil. 2013 11:13
par jchd
La levée d'une erreur dénote une situation anormale, dont la cause réside dans le programme lui-même, le plus souvent du fait d'avoir omis de vérifier que telle ou telle opération antérieure s'était déroulée sans accroc.

Autant prendre le soin d'écrire un programme correct à la base, plutôt que de pratiquer la chirurgie avec une tronçonneuse pour ignorer en chaîne les conséquences de ses propres erreurs.

Re: [R] Ignorer les erreurs d'autoit

Posté : ven. 12 juil. 2013 13:47
par yohan8
La cause ne réside pas dans le programme mais dans l'utilisateur qui ne souhaite pas être informé des erreurs qui se produisent.

Je n'ai pas le niveau suffisant pour coder une include tels que _FF.au3 :p

Dans ce monde de brute je m'adapte et j'adapte, au péril de provoquer d'autre erreurs, dans le but d'atteindre mes objectifs :)

Done.

Re: [R] Ignorer les erreurs d'autoit

Posté : mer. 17 juil. 2013 23:14
par yohan8
L'include "FF.au3" affiche des Msgbox lors des erreurs mais il est possible de les déactiver avec _FFAu3Option