これは私が推測するベストプラクティスの質問です。PowerShellのエラー処理関数を使用して
スクリプト内で使用される関数を設計するとき、関数内で発生する可能性のあるエラーを処理する最良の方法は何ですか?例えば
、我々はXとYを行う基本的な機能を持っていると言う:
Function Test-Function
{
Try
{
<# Something in here that would generate an error #>
}
Catch
{
Throw
}
Return $someReturnResultIWantInMyScript
}
私のスクリプトは、この関数を呼び出します。
Try
{
$ValueIWantFromFunction = Test-Function
}
Catch
{
<# Do something here #>
}
Test-Function
は終了エラーがヒットした場合、それがスローされます呼び出し元に。スクリプトのmy関数呼び出しの周りのTry/Catch
はこのエラーを受け取り、独自のcatchを実行します。私は何をすべきかを決めることができます。
関数内でエラーが発生しなかった場合、スクリプトに終了エラーが表示されず、$ValueIWantFromFunction
に$Null
などが含まれる可能性があります。
これはスクリプト内での関数呼び出しと関数呼び出しのエラー処理の良い方法ですか?より良い方法がありますか?
:ここ
はいくつかの素晴らしい記事です。ほとんどの場合、これらのオプションはあなたに選択肢を与えるために存在します。他の条件付きロジックで避けることができれば、それらのエラーを引き起こさないようにすることをお勧めします。 – Matt
try/catchがそれをブロックしていない限り、終了エラーはtry/catchに関係なく呼び出し側に送られます。 – TheIncorrigible1
関数が値を返す場合は、エラーをどのように処理すればよいですか(成功したとしますか?) – PnP