Question Gestions des codes retour / erreurs

Plus d'informations
il y a 15 ans 8 mois #7290 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #7291 par Régis LOUIS
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 ;)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
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.

Plus d'informations
il y a 15 ans 8 mois #7294 par Régis LOUIS
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 ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
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\&quot; ; 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.

Plus d'informations
il y a 15 ans 8 mois #7296 par Laurent Dardenne
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 \&quot;Soft: xxx CodeError $LASTEXITCODE\&quot;}
#Ou
if ( $LASTEXITCODE -ne 0 )
{ Throw New-object System.Management.Automation.ApplicationFailedException \&quot;MonMessage : $LASTEXITCODE\&quot;}
[/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.067 secondes
Propulsé par Kunena