Windows Powershell是否具有Try / Catch或其他错误处理机制?

时间:2008-10-14 19:19:29

标签: powershell scripting try-catch

在脚本中,当command-let或其他可执行语句出错时,是否有try / catch类型的机制来从这些错误中恢复?我没有在文档中遇到过一个。

3 个答案:

答案 0 :(得分:8)

在要处理例外的代码之前使用Trap [exception-type] {}块。

答案 1 :(得分:7)

我在TechNet杂志专栏(technetmagazine.com,如果您感兴趣的话)中写过这篇文章。

首先,PowerShell v2将有一个标准的Try ... Catch,这很棒。

现有的shell(v1)支持trap {}结构。必须在发生异常之前定义它们。此外,大多数cmdlet需要-EA“STOP”参数,以便它们生成可捕获的异常。陷阱可以在任何范围内定义,并且在被捕获之前“冒泡”或直到它们到达全局(shell)范围。

在陷阱结束时,执行Continue以返回与陷阱相同范围内的下一行代码,或执行Break以离开当前范围并抛出异常。

答案 2 :(得分:2)

这是使用powershell实现try / catch /最终的某人(Adam Weigert)。我用它代替内置的陷阱装置。似乎更自然。

http://weblogs.asp.net/adweigert/archive/2007/10/10/powershell-try-catch-finally-comes-to-life.aspx