Should I approach the exception handling in the same manner as .NET?
Then, how can I re-throw an exception from catch block in PowerShell?
Is throw
is enough? Or would throw $_
be better?
Should I approach the exception handling in the same manner as .NET?
Then, how can I re-throw an exception from catch block in PowerShell?
Is throw
is enough? Or would throw $_
be better?
If you would like to re-throw original exception you could use throw
(most common), or throw $_
, or throw $_.Exception
ps: inside catch
variable $_
is not exception by itself, but System.Management.Automation.ErrorRecord
that contains Exception
The throw
keyword at PowerShell behaves differently then .NET implementation: in .NET you can only throw System.Exceptions
itself or its successors, but in PowerShell, you can throw anything and that is automatically wrapped up into a System.Management.Automation.RuntimeException
. See snippet here.