Quantcast
Channel: Powershell – Jacques Dalbera's IT world
Viewing all articles
Browse latest Browse all 85

Powershell errors handling: try/catch ErrorVariable…

$
0
0

In Powershell, how to trap the results of a command to perform specific actions?

Resource about PS error handling techniques:

https://livebook.manning.com/book/powershell-in-depth/chapter-30/22 http://rkeithhill.wordpress.com/2009/08/03/effective-powershell-item-16-dealing-with-errors/

Bonjour, voici quelques exemples avec try catch finally en PowerShell :

  • Un premier exemple basique :
try {
  # Tenter d'ouvrir un dossier qui n'existe pas
  dir "c:\dossier\inexistant"
}
catch {
  # Afficher un message personnalisé en cas d'erreur
  Write-Host "Le dossier n'existe pas"
}

  • Un exemple avec affichage du message d’erreur :
try {
  # Tenter d'ouvrir un dossier qui n'existe pas
  dir "c:\dossier\inexistant"
}
catch {
  # Afficher le message d'erreur généré par PowerShell
  Write-Host $_.Exception.Message
}

  • Un exemple avec plusieurs blocs catch pour gérer différents types d’erreurs :
try {
  # Tenter de diviser par zéro
  1/0
}
catch [System.DivideByZeroException] {
  # Gérer l'erreur de division par zéro
  Write-Host "Vous ne pouvez pas diviser par zéro"
}
catch [System.OverflowException] {
  # Gérer l'erreur de dépassement de capacité
  Write-Host "Vous avez dépassé la capacité maximale"
}
catch {
  # Gérer les autres types d'erreurs
  Write-Host "Une erreur inconnue est survenue"
}

  • Un exemple avec un bloc finally pour effectuer des actions de nettoyage :
try {
  # Ouvrir une connexion à une base de données
  $conn = New-Object System.Data.SqlClient.SqlConnection
  $conn.ConnectionString = "Server=localhost;Database=Test;Integrated Security=True;"
  $conn.Open()
  # Exécuter une requête SQL
  $cmd = New-Object System.Data.SqlClient.SqlCommand
  $cmd.Connection = $conn
  $cmd.CommandText = "SELECT * FROM Table1"
  $result = $cmd.ExecuteReader()
}
catch {
  # Afficher le message d'erreur en cas de problème
  Write-Host $_.Exception.Message
}
finally {
  # Fermer la connexion à la base de données dans tous les cas
  if ($conn) {
    $conn.Close()
    Write-Host "Connexion fermée"
  }
}

Sources : Microsoft Learn, LazyAdmin, IT-Connect


Viewing all articles
Browse latest Browse all 85

Trending Articles