Question
Gestions des codes retour / erreurs
- gloo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 23
- Remerciements reçus 0
il y a 15 ans 8 mois #7290
par gloo
Gestions des codes retour / erreurs a été créé par gloo
Bonjour a tous,
J'ecris un script contenant plusieurs commandes et je souhaiterais que je script s'arrete si il rencontre une erreur ?
vers quelle solution dois je me diriger?
Dans les doc j ai croisé la variable $LASTEXITCODE, dois je tester celle ci apres chaque commande ou y a t il qqchose de plus general ?
merci pour votre aide
J'ecris un script contenant plusieurs commandes et je souhaiterais que je script s'arrete si il rencontre une erreur ?
vers quelle solution dois je me diriger?
Dans les doc j ai croisé la variable $LASTEXITCODE, dois je tester celle ci apres chaque commande ou y a t il qqchose de plus general ?
merci pour votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Régis LOUIS
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 15 ans 8 mois #7291
par Régis LOUIS
Réponse de Régis LOUIS sur le sujet Re:Gestions des codes retour / erreurs
bonjour,
Pour sortir d'un script powershell, j'utilise la fonction \"exit\"
Si tu es en PowerShell 2.0, je te conseille d'utiliser la fonction
[code:1]try {
#ta fonction ou ton code
}
Catch {
#la gestion d'erreur et le comportement à adopter
}[/code:1]
Tu peux ainsi personnaliser tes messages d'erreurs et traiter le comportement de ton script ou de ton bout de code. J'espère avoir été assez clair
Pour sortir d'un script powershell, j'utilise la fonction \"exit\"
Si tu es en PowerShell 2.0, je te conseille d'utiliser la fonction
[code:1]try {
#ta fonction ou ton code
}
Catch {
#la gestion d'erreur et le comportement à adopter
}[/code:1]
Tu peux ainsi personnaliser tes messages d'erreurs et traiter le comportement de ton script ou de ton bout de code. J'espère avoir été assez clair
Connexion ou Créer un compte pour participer à la conversation.
- gloo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 23
- Remerciements reçus 0
il y a 15 ans 8 mois #7292
par gloo
Réponse de gloo sur le sujet Re:Gestions des codes retour / erreurs
je suis en power shell 1
Connexion ou Créer un compte pour participer à la conversation.
- Régis LOUIS
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 15 ans 8 mois #7294
par Régis LOUIS
Réponse de Régis LOUIS sur le sujet Re:Gestions des codes retour / erreurs
En effet le \"try.... catch\" n'est implémenté qu'à partir de la version 2.0
en version 1.0, il y a la fonction \"trap\" qui permet de gérer les erreurs, mais je ne suis pas familier avec.
Pourquoi restes tu en version 1.0 ? C'est une contrainte ?
en version 1.0, il y a la fonction \"trap\" qui permet de gérer les erreurs, mais je ne suis pas familier avec.
Pourquoi restes tu en version 1.0 ? C'est une contrainte ?
Connexion ou Créer un compte pour participer à la conversation.
- gloo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 23
- Remerciements reçus 0
il y a 15 ans 8 mois #7295
par gloo
Réponse de gloo sur le sujet Re:Gestions des codes retour / erreurs
le powershell 1 semble installé ici (a mon taf) par defaut avec SQL server.
Le fait de demander des installation d'outils supplementaires n'est pas forcement possible, surtout sur les machines de prod, on n 'aime pas installer des outils sans FORTE justification
Donc, en regle general, chez les clients ou je vais, la contrainte c'est de bosser \"avec les moyens du bord\".
si j'arrive a eviter de demander des installations supplementaires, ca m 'arrange. Gain de temps, gain de polemique, pas de justification, ni de prise de tete etc...
J'ai croisé dans une doc la commande TRAP et j'ai l 'impression que TRAP et peut etre TRY ne marchent que quand on fait du code avec des objets powershell mais dans mon cas j'execute des lignes de commandes d'un outil qui ne fait que renvoyer 0 (ok) ou 1 (ko).
j'ai donc l'impression que ma seule solution, meme si j avais PS 2 et d ecrire apres chaque commande
[code:1]if ( $LASTEXITCODE -ne 0 ) { write-host \"
ERREUR blablabla\" ; exit 1 }[/code:1]<br><br>Message édité par: gloo, à: 29/06/10 15:03
Le fait de demander des installation d'outils supplementaires n'est pas forcement possible, surtout sur les machines de prod, on n 'aime pas installer des outils sans FORTE justification
Donc, en regle general, chez les clients ou je vais, la contrainte c'est de bosser \"avec les moyens du bord\".
si j'arrive a eviter de demander des installations supplementaires, ca m 'arrange. Gain de temps, gain de polemique, pas de justification, ni de prise de tete etc...
J'ai croisé dans une doc la commande TRAP et j'ai l 'impression que TRAP et peut etre TRY ne marchent que quand on fait du code avec des objets powershell mais dans mon cas j'execute des lignes de commandes d'un outil qui ne fait que renvoyer 0 (ok) ou 1 (ko).
j'ai donc l'impression que ma seule solution, meme si j avais PS 2 et d ecrire apres chaque commande
[code:1]if ( $LASTEXITCODE -ne 0 ) { write-host \"
ERREUR blablabla\" ; exit 1 }[/code:1]<br><br>Message édité par: gloo, à: 29/06/10 15:03
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 8 mois #7296
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Gestions des codes retour / erreurs
Dans ton cas mieux vaut déclencher une exception au lieu de quitter le script sur une instruction exit :
[code:1]
if ( $LASTEXITCODE -ne 0 )
{ Throw \"Soft: xxx CodeError $LASTEXITCODE\"}
#Ou
if ( $LASTEXITCODE -ne 0 )
{ Throw New-object System.Management.Automation.ApplicationFailedException \"MonMessage : $LASTEXITCODE\"}
[/code:1]
L'idéal aurait été de disposer d'une classe d'exception dédiée à ce cas...
[code:1]
if ( $LASTEXITCODE -ne 0 )
{ Throw \"Soft: xxx CodeError $LASTEXITCODE\"}
#Ou
if ( $LASTEXITCODE -ne 0 )
{ Throw New-object System.Management.Automation.ApplicationFailedException \"MonMessage : $LASTEXITCODE\"}
[/code:1]
L'idéal aurait été de disposer d'une classe d'exception dédiée à ce cas...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.103 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Gestions des codes retour / erreurs