如何捕获另一个Powershell脚本中抛出的异常?

时间:2010-05-13 10:24:46

标签: exception powershell-v2.0

我有两个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";

1 个答案:

答案 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方法(但这也取决于你究竟做了什么)。