Probleme avec gestion des erreurs en vbscript

Probleme avec gestion des erreurs en vbscript - VB/VBA/VBS - Programmation

Marsh Posté le 20-09-2006 à 15:31:40    

Bonjour.
Je débute en VBScript et j'ai un petit problème.
J'ai fait un script qui marche mais la gestion des erreurs ne marche pas avec les GoTo.
Exemple :
 
Exemple plus parlant de mon pb :
 
Ne marche pas (test.vbs(2, 15) Microsoft VBScript compilation error: Syntax error) :
 
Sub test()
On Error Goto SortieErreur
 
CommandeQuiN'ExistePas
 
MsgBox "marche !"
 
Exit Sub
 
SortieErreur:
MsgBox "erreur !"
 
End Sub

 
 
 
Marche (sortie propre du programme, il ne se passe rien) :
 
Sub test()
On Error Resume Next
 
CommandeQuiN'ExistePas
 
MsgBox "marche !"
 
End Sub

 
Il indique l'erreur de syntaxe sur le mot SortieErreur, comme s'il ne reconnaissait pas en lui un label de GoTo.
Quelqun a une idée pour que je puisse faire un goto en cas d'erreur dans la fonction ?
Merci :)

Reply

Marsh Posté le 20-09-2006 à 15:31:40   

Reply

Marsh Posté le 27-09-2006 à 08:35:57    

Personne ? :(

Reply

Marsh Posté le 05-10-2006 à 09:45:17    

Utilise simplement "On error resume next" ce qui fait qu'il ignorera l'erreur.
 
Et si tu utilise un simple script .vbs, enlève sub et end sub ;-)

Reply

Marsh Posté le 05-10-2006 à 12:04:36    

Le truc c'est que s'il y a une erreur je veux effectuer une action, ca marche effectivement quand j'ignore l'erreur mais ce n'est pas le but...
Sauf erreur de ma part comme j'ai plusieurs fonctions dans mon VBS il faut que j'utilise sub non ?
Merci

Reply

Marsh Posté le 05-10-2006 à 13:54:15    

Il ne faut pas confondre fonction et procédure ;-)
 
Là c'est une simple procédure générale après pour les fonctions, utilise "function" et non "sub".
 
"sub" tu le met quand c'est du VBA, VB6... En VBS si tu le mets ca ne fonctionne pas.

Reply

Marsh Posté le 05-10-2006 à 14:16:02    

En VBS le retour erreur ne peut pas se faire comme je le fais ?
Pour faire comme ca il faut forcément que je passe par du VB6/VBA ?
Merci :)

Reply

Marsh Posté le 05-10-2006 à 15:10:02    

Là je pense qu'il vaut mieux attendre la réponse d'autres personnes.
 
Sinon tu devrais pouvoir trouver ta réponse sur le site vbfrance : http://www.vbfrance.com/codes_cate [...] PT/36.aspx

Reply

Marsh Posté le 10-10-2006 à 14:19:16    

Si ta sub est le composant unique du script, il faut virer les wub / endsub
 
Les Sub marchent en VBS, mais il faut une "boucle principale" qui n'est ni une sub, ni une fonction.


---------------
"Mon modèle, c'est moi-même."
Reply

Marsh Posté le 10-10-2006 à 14:23:59    

Correction : En fait les labels ne sont pas utilisables en VBS.
Pour le traitement d'erreur, utilise un truc du genre :
On Error Resume Next 'Pour éviter l'interruption du script (l'affichage d'une erreur)
Call TTestProc(1)
If err.number = 0 Then
 MsgBox "marche !"  
Else
 MsgBox "erreur !"  
End If


---------------
"Mon modèle, c'est moi-même."
Reply

Marsh Posté le 10-10-2006 à 16:09:39    

Ca marche très bien, merci beaucoup ! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed