スクリプトで、コマンドレットまたはその他の実行可能ステートメントがエラーになった場合、これらのエラーから回復するためのtry / catchタイプのメカニズムはありますか?私はドキュメントで1つに出くわしていません。
3 に答える
Trap [exception-type] {}
例外を処理するコードの前にブロックを使用します。
これについては、TechNet Magazine のコラム (興味がある場合は、technetmagazine.com) に書いています。
まず、PowerShell v2 には標準の Try...Catch があります。これは素晴らしいことです。
既存のシェル (v1) は、trap {} コンストラクトをサポートしています。これらは、例外が発生する前に定義する必要があります。また、ほとんどのコマンドレットでは、トラップ可能な例外を生成するために -EA "STOP" パラメーターが必要です。トラップは任意のスコープで定義でき、トラップされるか、グローバル (シェル) スコープに到達するまで「バブル」します。
トラップの最後で、Continue を実行してトラップと同じスコープ内の次のコード行に戻るか、Break を実行して現在のスコープを離れて例外を投げます。
これは、powershell を使用して try/catch/finally を実装した人 (Adam Weigert) です。組み込みのトラップステートメントの代わりにこれを使用します。より自然に見えます。
http://weblogs.asp.net/adweigert/archive/2007/10/10/powershell-try-catch-finally-comes-to-life.aspx