2008-10-14 114 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