gpt4 book ai didi

exception - 在 PowerShell 中进行错误处理的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-04 11:32:38 28 4
gpt4 key购买 nike

PowerShell 是 .bat 和 .NET 的奇怪组合。在 .bat 中,您可以检查命令的 errorlevel 和 stderr 输出。在 .NET 中,您可以捕获异常。

cmdlet 如何返回错误?他们是在失败时抛出异常还是设置了 $?反而?这个可以配置吗?

我还假设我在 PowerShell 中调用的 .NET 函数将始终抛出异常并且不会被 shell 自动捕获并转换为错误。那是对的吗?

也许我真正应该问的是:什么是一篇涵盖所有这些内容的好文章?似乎有很多像我一样在 cmd 的 .bat 和 .NET 方面有经验的工程师都想知道我们应该如何在这个美丽的 Posh 新世界中做事。

最佳答案

对于单个 cmdlet,有一个名为 -erroraction 的参数。可能的值为 SilentlyContinue、Stop、Continue 或 Inquire。您还可以为这些选项中的任何一个指定一个名为 $errorpreference 的全局变量。

在 V1 中,您可以使用陷阱关键字。有一个pretty good, concise article描述了陷阱和 V2 中添加的 try/catch/finally 语法之间的主要区别。

这是使用陷阱语句的快速示例,第一个是针对特定类型的异常,第二个是通用的捕获所有错误陷阱

trap {"Other terminating error trapped" }
trap [System.Management.Automation.CommandNotFoundException]
{"Command error trapped"}
1/$null

关于exception - 在 PowerShell 中进行错误处理的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1019213/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com