72

.NET と同じ方法で例外処理にアプローチする必要がありますか?

では、PowerShell の catch ブロックから例外を再スローするにはどうすればよいでしょうか。

throw十分ですか?それともthrow $_もっと良いでしょうか?

4

1 に答える 1

124

元の例外を再スローしたい場合は、 throw(最も一般的)、またはthrow $_、またはthrow $_.Exception

ps: 内部catch変数$_自体は例外ではありませんが、System.Management.Automation.ErrorRecord例外が含まれています


ノート

PowerShellのthrowキーワードは、.NET 実装とは異なる動作をしますSystem.Exceptions。.NET では、それ自体またはその後継のみをスローできますが、PowerShell では何でもスローでき、それは自動的に .NET にラップされますSystem.Management.Automation.RuntimeExceptionここのスニペットを参照してください。

于 2012-12-11T13:37:48.387 に答える