Avez-vous déjà vu un crash de l’application? Si c’est le cas, vous savez à quel point cela peut être frustrant et si vous êtes un programmeur, vous maudirez probablement le développeur de ne pas y avoir mis le bon mécanisme de gestion des erreurs! Et c’est exactement ce que cette pièce est tout au sujet. La gestion des erreurs fait partie intégrante du code d’une application car elle détecte les erreurs imprévues et garantit que l’application est terminée en toute sécurité., Comme avec la plupart des langages de programmation, PowerShell prend également en charge un mécanisme de gestion des erreurs appelé try-catch, mais avant cela, apprenons un peu plus sur la gestion des erreurs dans PowerShell.
Pourquoi avez-vous besoin de gérer les erreurs?
une question assez basique que la plupart d’entre vous connaissent peut-être déjà. Néanmoins, abordons-le brièvement pour réitérer quelques points importants.
la gestion des erreurs aide de la manière suivante.
- empêche une application de planter.
- permet à l’utilisateur de savoir facilement que quelque chose ne va pas et qu’il doit contacter l’équipe de support.,
- fournit des détails sur l’erreur et ses causes possibles.
- aide à une analyse plus approfondie et à résoudre les problèmes.
- Donne la possibilité de personnaliser les messages d’erreur envoyés à des utilisateurs finaux.
- facilite la maintenance de votre code.
- Votre programme pourrait continuer à fonctionner, même après l’erreur, en fonction de l’erreur et de votre code.
- Considéré comme une bonne pratique.
maintenant que nous avons abordé les avantages de la gestion des erreurs, voyons comment elle peut être implémentée dans PowerShell.,
gestion des erreurs dans PowerShell
D’une manière générale, il existe deux types d’erreurs: les erreurs terminantes et les erreurs non terminantes.
erreurs de terminaison et de non-terminaison
comme son nom l’indique, les erreurs de terminaison sont celles qui sont critiques et terminent brusquement le programme alors que les erreurs de non-terminaison permettent au programme de s’exécuter mais peuvent donner une mauvaise sortie ou parfois même des résultats drastiques. Maintenant, si vous vous demandez, les erreurs de non-terminaison sont potentiellement plus dangereuses que les erreurs de terminaison car vous ne savez pas quels aspects peuvent être modifiés.,
certaines erreurs de terminaison possibles sont des erreurs de mémoire et de syntaxe alors que la grande partie des erreurs de logique de programmation et des erreurs inattendues tombent dans la catégorie non terminatrice.
conversion des erreurs non terminantes en erreurs terminantes
en tant que programmeur, vous pouvez dire à PowerShell de traiter les erreurs non terminantes comme des erreurs terminantes, de sorte que le programme s’arrête s’il rencontre cette erreur particulière. Cette modification vous aide à gérer l’erreur à l’aide du bloc try-catch de PowerShell car, par défaut, les erreurs non terminantes ne peuvent pas être gérées avec le bloc try-catch.,
pour convertir les erreurs non terminantes en erreurs terminantes, utilisez un paramètre appelé ErrorAction. Chaque applet de commande prend en charge ce paramètre et est conçue pour indiquer au programme quelle action il doit entreprendre lorsqu’il rencontre une erreur. ErrorAction est livré avec les options suivantes
- Stop: cela arrête le programme et le traite comme une erreur de fin.
- continuer: permet au programme de continuer et l’erreur s’affiche.
- SilentlyContinue: Le programme s’exécute et aucune erreur n’est affichée.
- Ignore: ignore l’erreur et continue.,
- se Renseigner: Affiche l’erreur et vérifie si elle doit continuer.
- suspendre: cela peut être utilisé dans un flux de travail Windows PowerShell. La limitation est qu’il ne peut pas suspendre les fonctions avancées.
la syntaxe pour ErrorAction est la suivante:
$variable = Get:content \user.txt:ErrorAction Stop
Cette commande transforme une erreur non terminante en une erreur terminante, vous pouvez donc la gérer.
construire un bloc try-catch
Une fois que vous avez une erreur de terminaison ou que vous avez converti une erreur non terminante en erreur de terminaison, vous pouvez la gérer à l’aide du bloc try-catch PowerShell.,
Le générique de la syntaxe est:
Dans cet exemple, les données du fichier est stocké dans la variable $et si il y a une erreur, le code pour le bloc catch et affiche le message. L’exemple ci-dessus est une base, conçu pour vous donner une idée de la syntaxe et de l’utilisation. Dans le monde réel cependant, vous utiliserez ce bloc PowerShell try-catch pour obtenir des informations sur l’erreur et prendre des mesures en conséquence.,
les applications Pratiques de PowerShell bloc try-catch
Vous pouvez accéder à l’enregistrement d’erreur dans le bloc catch. En fait, le message d’erreur est stocké dans la variable actuelle__. Vous pouvez tout faire avec cet enregistrement d’erreur, par exemple analyser l’erreur, afficher un avertissement, etc. Un attribut puissant de la variable actuelle est L’Exception car l’idée est d’en savoir plus sur les événements inattendus qui ont provoqué l’arrêt du programme. En outre, L’Exception elle-même est livrée avec de nombreux attributs comme ItemName, GetType, Message, etc.,,
Par exemple:
try{$variable = Get:content \user.txt:ErrorAction Stop}catch{write:output $_Exception.Message}
Maintenant que les bases sont claires, passons à la partie avancée.
Vous pouvez utiliser le bloc catch pour attraper des exceptions spécifiques, à condition de les connaître ou de les anticiper. Par exemple, supposons que vous souhaitiez afficher un message spécifique si le fichier n’est pas trouvé et d’autres messages pour d’autres exceptions, votre code devrait ressembler à ceci:
quelques points à considérer lors de l’utilisation de try-catch
gardez à l’esprit les points suivants lors de l’utilisation du bloc PowerShell try-catch.,
- Il ne devrait pas y avoir de code entre les accolades de terminaison du bloc try et la commande catch. En d’autres termes, le mot « catch” devrait immédiatement être dans la ligne suivante après les accolades fermantes du bloc try
- ce bloc try-catch PowerShell est le plus utile pour gérer les erreurs que vous anticipez peut se produire dans le programme.
- Le bloc catch interceptera toute exception lancée à l’intérieur du bloc try, quelle que soit son origine.
- La commande PowerShell try-catch est une alternative pratique à plusieurs instructions if.,
- Le bloc try peut être suivi de n’importe quel nombre de blocs catch, mais ils doivent être consécutifs sans autre code entre les deux.
enfin bloc
Il y a quelque chose appelé un enfin bloc que vous pouvez utiliser avec try-catch. Ceci est facultatif et ne doit pas être utilisé à tout moment. Ce bloc exécutera le code mentionné à l’intérieur, qu’il y ait eu une erreur ou non. Ce bloc devrait venir juste après les accolades de fermeture du dernier bloc de capture.,
Par exemple:
dans l’exemple ci-dessus, une entrée sera ajoutée dans le fichier journal à chaque tentative d’accès au fichier, que le fichier ait été trouvé ou non.
Try-catch: essayez-le et évitez les plantages
La gestion des erreurs est une partie importante de tout programme car elle empêche l’application de planter et vous aide à analyser la cause possible de l’erreur. PowerShell try-catch block est un moyen puissant de capturer les erreurs de terminaison, de sorte que vous pouvez les gérer en toute sécurité sans provoquer de crash., Cela aide également à l’analyse détaillée et à la compréhension du problème. Pour ces raisons, c’est un must-have dans vos scripts PowerShell.
Leave a Reply