4

我有两个 Powershell 脚本;main.ps1 和 sub.ps1。main.ps1 调用 sub.ps1。有时 sub.ps1 会引发异常。是否可以从 main.ps1 捕获 sub.ps1 引发的异常?

示例 main.ps1:

try{. .\sub.ps1;}
catch
{}
finally
{}

示例 sub.ps1:

throw new-object System.ApplicationException "I am an exception";
4

1 回答 1

6

这是一个简单的例子:

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 方法(但这也取决于您具体做什么)。

于 2010-05-13T11:31:27.090 回答