18

スクリプトで、コマンドレットまたはその他の実行可能ステートメントがエラーになった場合、これらのエラーから回復するためのtry / catchタイプのメカニズムはありますか?私はドキュメントで1つに出くわしていません。

4

3 に答える 3

8

Trap [exception-type] {}例外を処理するコードの前にブロックを使用します。

于 2008-10-14T19:27:02.510 に答える
7

これについては、TechNet Magazine のコラム (興味がある場合は、technetmagazine.com) に書いています。

まず、PowerShell v2 には標準の Try...Catch があります。これは素晴らしいことです。

既存のシェル (v1) は、trap {} コンストラクトをサポートしています。これらは、例外が発生する前に定義する必要があります。また、ほとんどのコマンドレットでは、トラップ可能な例外を生成するために -EA "STOP" パラメーターが必要です。トラップは任意のスコープで定義でき、トラップされるか、グローバル (シェル) スコープに到達するまで「バブル」します。

トラップの最後で、Continue を実行してトラップと同じスコープ内の次のコード行に戻るか、Break を実行して現在のスコープを離れて例外を投げます。

于 2008-11-24T21:52:11.700 に答える
2

これは、powershell を使用して try/catch/finally を実装した人 (Adam Weigert) です。組み込みのトラップステートメントの代わりにこれを使用します。より自然に見えます。

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

于 2008-11-11T20:44:11.130 に答える