[R] Ignorer les erreurs d'autoit

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

[R] Ignorer les erreurs d'autoit

#1

Message 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 :)
Modifié en dernier par yohan8 le jeu. 11 juil. 2013 23:03, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message par Tlem »

Le plus simple est de gérer l'erreur dans la fonction !
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

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

#3

Message 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..
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Ignorer les erreurs d'autoit

#4

Message 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'.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [R] Ignorer les erreurs d'autoit

#5

Message 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" ?
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Ignorer les erreurs d'autoit

#6

Message 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.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [R] Ignorer les erreurs d'autoit

#7

Message 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.
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [R] Ignorer les erreurs d'autoit

#8

Message par yohan8 »

L'include "FF.au3" affiche des Msgbox lors des erreurs mais il est possible de les déactiver avec _FFAu3Option
Répondre