我有两个Powershell脚本; main.ps1和sub.ps1。 main.ps1调用sub.ps1。有时sub.ps1会抛出异常。是否可以捕获sub.ps1从main.ps1抛出的异常?
示例main.ps1:
try{. .\sub.ps1;}
catch
{}
finally
{}
示例sub.ps1:
throw new-object System.ApplicationException "I am an exception";
答案 0 :(得分:5)
这是一个简单的例子:
try {
sub.ps1
}
catch {
Write-Warning "Caught: $_"
}
finally {
Write-Host "Done"
}
使用help about_Try_Catch_Finally
了解更多详情。
另一种方法是使用trap
,请参阅help about_trap
。如果你有一些C#或C ++背景,那么我建议使用Try_Catch_Finally方法(但这也取决于你究竟做了什么)。