PowerShell 2.0 and how to handle exceptions? PowerShell 2.0 and how to handle exceptions? powershell powershell

PowerShell 2.0 and how to handle exceptions?


First example

The error happens at compile/parsing time (PowerShell is clever enough), so that the code is not even executed and it cannot catch anything, indeed. Try this code instead and you will catch an exception:

try{    $x = 0    $i = 1/$x    Write-Host $i}catch [Exception]{    Write-Host "Error testing :)"}

Second example

If you set $ErrorActionPreference = 'Stop' globally then you will get "Error testing :)" printed, as expected. But your $ErrorActionPreference is presumably 'Continue': in that case there is no terminating error/exception and you just get the non terminating error message printed to the host by the engine.

Instead of the global $ErrorActionPreference option you can also play with Get-WmiObject parameter ErrorAction. Try to set it to Stop and you will catch an exception.

try{    Get-WmiObject -ErrorAction Stop -ComputerName possibly.nonexisting.domain.com -Credential (Get-Credential) -Class Win32_logicaldisk}catch [Exception]{    Write-Host "Error testing :)"}