2008-10-14 3 views

Antwort

8

Sie verwenden einen Trap [exception-type] {} Block vor dem Code, für den Sie Ausnahmen behandeln möchten.

+0

+0 Die wirkliche Antwort ist jetzt try/catch in PowerShell v2 und später, wie im Kommentar zu der Frage erwähnt. I + 1d t @ Mark Ingram stattdessen, wie ich dies als eine dup, die nicht viel hinzufügen. (Ja, ich weiß, das war vor langer Zeit, aber ich verpasste den Kommentar zu der Frage zum ersten Mal und das war die höchste Abstimmung) –

7

Ich habe in meinem TechNet Magazine Spalte darüber geschrieben (technetmagazine.com, wenn Sie interessiert sind).

Zuerst wird PowerShell v2 einen Standard Try ... Catch haben, was großartig ist.

Die vorhandene Shell (v1) unterstützt Trap {} -Konstrukte. Diese müssen vor dem Auftreten der Ausnahme definiert werden. Außerdem benötigen die meisten Cmdlets einen "STOP" -Parameter -EA, damit sie eine abfangbare Ausnahme generieren können. Traps können in jedem Bereich definiert werden und "sprudeln" bis sie gefangen sind oder bis sie den globalen (Shell-) Bereich erreichen.

Am Ende eines Traps, führen Sie Continue aus, um zur nächsten Codezeile im selben Bereich wie der Trap zurückzukehren, oder führen Sie Break aus, um den aktuellen Bereich zu verlassen und die Ausnahme zu werfen.

+1

+1 für '-ErrorAction" STOP "' – mbx

Verwandte Themen