2008-10-14 117 views

回答

8

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

+0

+0真正的答案是在PowerShell v2及更高版本中的try/catch中,如问题的评论中所述。 I + 1d t @马克英格拉姆,因为我认为这是一个不增加很多的重复。 (是的,我知道这是很久以前的事了,但是我第一次错过了对这个问题的评论,并且这是最高的投票数) – 2012-07-02 12:34:37

7

我已经在我的TechNet杂志列写这个(technetmagazine.com,如果你有兴趣)。

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

现有shell(v1)支持trap {}构造。这些必须在发生异常之前进行定义。此外,大多数cmdlet都需要一个-EA“STOP”参数才能生成可捕获的异常。陷阱可以在任何范围内定义,并会“陷入”,直到陷入困境,或者直到碰到全局(shell)范围。

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

+1

对于'-ErrorAction“停止”+1“ – mbx 2012-02-15 16:36:02