How to catch an exception thrown in another Powershell script?
I have a two Powershell scripts; main.ps1 and sub.ps1. main.ps1 calls sub.ps1. Sometimes sub.ps1 throws an exception. Is it possible to catch the exception thrown by sub.ps1 from main.ps1 ?
Example main.ps1:
try{. .\sub.ps1;}
catch
{}
finally
{}
Example sub.ps1:开发者_如何学运维
throw new-object System.ApplicationException "I am an exception";
Here is a simple example:
try {
sub.ps1
}
catch {
Write-Warning "Caught: $_"
}
finally {
Write-Host "Done"
}
Use help about_Try_Catch_Finally
for more details.
Yet another way is to use trap
, see help about_trap
. If you have some C# or C++ background then I would recommend to use Try_Catch_Finally approach (but it also depends on what exactly you do).
精彩评论