Gestion des erreurs

Gestion des erreurs - VB/VBA/VBS - Programmation

Marsh Posté le 05-12-2007 à 18:03:41    

bonjour,
 
J'ai trouvé comment ne pas arreter un script lors d'une erreur avec ça :  
On Error resume next
 
Le souci c'est que cela me continu quand même le script et je ne voudrais pas.
est il possible de recuperer les erreur dans un sub et d'ecrire dans un fichier les erreurs survenu.
par exemple
on error recuperror()
sub recuperror()
Set objFile = objFSO.OpenTextFile(strPathtoTextFile & "erreur.txt", ForAppending,true)
      objFile.WriteLine(err.description)
 
end sub
 
 
Une idée
 
Merci

Reply

Marsh Posté le 05-12-2007 à 18:03:41   

Reply

Marsh Posté le 06-12-2007 à 11:03:34    

La gestion d'erreurs se fait comme suit, par exemple :

Sub Bidule()
On Error Goto labelDeLigne
...
<instruction qui plante avec une erreur 1111>
<instruction suivante>
...
Exit Sub   ' pour ne pas passer dans la gestion d'erreur quand il n'y en a pas

 

labelDeLigne:
   Select Case Err.Number
   Case 1111
      Resume Next    
      ' renvoie à la ligne de code <instruction suivante> pour poursuivre l'exécution du code
   Case 11
      MsgBox "Une division par zéro est survenue dans l'une de vos formules"    
      ' on sort de la procédure par le End Sub
   Case Else
      MsgBox Err.Description              
      ' on sort de la procédure par le End Sub
   End Select
End Sub


Message édité par tegu le 06-12-2007 à 11:03:55
Reply

Marsh Posté le 17-12-2007 à 15:19:33    

oui mais ceci c'est pour du VB et pas pour du Vb car quand je met  
 
 
On Error Goto labelDeLigne
 
rem test si la listes des ordinateurs existent
 
If not objFSO.FileExists("ListeOrdi.txt" ) Then
 WScript.Echo "Fichier ListeOrdi.txt pas présent pour continuer à executer le script"
 Wscript.quit  
end if
labelDeLigne:
   Select Case Err.Number
   Case 1111
      Resume Next    
      ' renvoie à la ligne de code <instruction suivante> pour poursuivre l'exécution du code
   Case 11
      MsgBox "Une division par zéro est survenue dans l'une de vos formules"    
      ' on sort de la procédure par le End Sub
   Case Else
      MsgBox Err.Description              
      ' on sort de la procédure par le End Sub
   End Select
End Sub
 
il me sort une erreur sur ligne 2 cad On Error Goto labelDeLigne


---------------
je veux tout, tout de suite, et gratuitement ! miladiou !
Reply

Marsh Posté le 17-12-2007 à 15:22:36    

j'aimerai définir une commande a executer quand il y a une erreur dans l'ensemble du script et pas dans un sub.


---------------
je veux tout, tout de suite, et gratuitement ! miladiou !
Reply

Marsh Posté le 17-12-2007 à 15:23:04    

skoizer a écrit :

J'ai trouvé comment ne pas arreter un script lors d'une erreur avec ça :  
On Error resume next
 
Le souci c'est que cela me continu quand même le script


Captain Obvious, to the rescue !
 
On Error Resume Next, traduit en français, veut dire "Si Erreur, Continue ligne suivante", donc c'est logique... Sinon le truc de tegu devrait fonctionner, quelque soit la version de VB, c'est la design pattern standard pour la gestion d'erreurs....

Reply

Sujets relatifs:

Leave a Replay

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