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

发布于 2024-09-01 06:09:20 字数 306 浏览 4 评论 0原文

我有两个 Powershell 脚本;主.ps1 和子.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";

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";

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

零崎曲识 2024-09-08 06:09:20

这是一个简单的示例:

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

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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文