.NETと同じ方法で例外処理を行うべきですか?Powershellのcatchブロックから例外を再スローする方法はありますか?
次に、PowerShellのcatchブロックから例外を再スローするにはどうすればよいですか?
'投げ'はenounghか '投げ$ _'は良いでしょうか? PowerShellので
.NETと同じ方法で例外処理を行うべきですか?Powershellのcatchブロックから例外を再スローする方法はありますか?
次に、PowerShellのcatchブロックから例外を再スローするにはどうすればよいですか?
'投げ'はenounghか '投げ$ _'は良いでしょうか? PowerShellので
throw
キーワードは、その後、異なる.NET実装を振る舞う:.NETであなただけのSystem.Exceptions
自体やその後継者を投げることができますが、PowerShellでは、あなたは何を投げることができますし、それが自動的にSystem.Management.Automation.RuntimeException
に包まれています。スニペットhereを参照してください。あなたは再スロー元の例外に好きなら
あなたは(最も一般的)throw
、またはthrow $_
、またはthrow $_.Exception
PSを使用することができます。内部catch
変数$_
は、それ自体で例外ではありませんが、例外が含まれていますSystem.Management.Automation.ErrorRecord
注:C#では、 'throw'フォームは元の例外のコンテキスト(ソースの場所)を保持しますが、残念ながらこれはPowerShellの場合とは異なります。 – brianary