新しい例外を作成してスローする


130

PowerShellで新しい例外を作成してスローするにはどうすればよいですか?

特定のエラーに対して別のことをしたい。


2
カスタム例外をスローする予定ですか?[これ] [1]は役に立ちますか?[1]:stackoverflow.com/questions/11703180/...
bala_88

1
この記事を見てみましょう:stackoverflow.com/questions/2182666/...を
アンドレイMarchuk

回答:


194

FileNotFoundExceptionなどの特定の例外を呼び出すには、次の形式を使用します

if (-not (Test-Path $file)) 
{
    throw [System.IO.FileNotFoundException] "$file not found."
}

一般的な例外をスローするには、throwコマンドの後に文字列を続けます。

throw "Error trying to do a task"

キャッチ内で使用すると、エラーの原因について追加情報を提供できます


C ++では、例外階層にないため、文字列をスローすることはお勧めしません。それはPowershellのように機能しますが、おそらくそれが最善の方法ではありませんか?
ラウル・サリナス- Monteagudo

3
スクリプトでtry..catchesを使用していて、特定の例外を呼び出す複数のcatchステートメントがある場合は、もちろん、例外の種類を指定する必要があります。なぜC ++への参照が行われるのかはわかりません。Powershellスクリプティングでは、throwステートメントは通常、説明メッセージでスクリプトを終了することを目的としています。私は議論を巻き起こすつもりはありませんが、PowershellとC ++は非常に異なる動物です。C ++またはC#のベストプラクティスをPowershellに適用することは、スクリプトが関数型プログラミングとより密接に関連付けられているため、調整する必要があります。
WiiBopp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.