次の方法で共有


about_Throw

簡単な説明

終了エラーをthrow生成するキーワード (keyword)について説明します。

長い説明

throw キーワード (keyword)によって終了エラーが発生します。 キーワード (keyword)をthrow使用して、コマンド、関数、またはスクリプトの処理を停止できます。

たとえば、ステートメントのthrowスクリプト ブロック内の キーワード (keyword)をif使用して、条件に応答したり、ステートメントの-finallytrycatch-ブロックでcatch応答したりできます。

キーワード (keyword)はthrow、ユーザー メッセージ文字列やエラーの原因となったオブジェクトなど、任意のオブジェクトをスローできます。

構文

キーワード (keyword)のthrow構文は次のとおりです。

throw [<expression>]

構文の throw 式は省略可能です。 ステートメントが throw ブロック内に catch 表示されておらず、式が含まれていない場合は、 ScriptHalted エラーが生成されます。

throw
Exception: ScriptHalted

式のないthrowブロックでcatchキーワード (keyword)を使用すると、現在の RuntimeException が再度スローされます。 詳細については、「 about_Try_Catch_Finally」を参照してください。

文字列のスロー

ステートメントの省略可能な throw 式は、次の例に示すように文字列にすることができます。

throw "This is an error."
Exception: This is an error.

他のオブジェクトをスローする

式には、次の例に示すように、PowerShell プロセスを表す オブジェクトをスローする オブジェクトを指定することもできます。

throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)

自動変数の ErrorRecord オブジェクトの TargetObject プロパティを使用して、$Errorエラーを調べることができます。

$Error[0].TargetObject
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    125   174.44     229.57      23.61    1548   2 pwsh
     63    44.07      81.95       1.75    1732   2 pwsh
     63    43.32      77.65       1.48    9092   2 pwsh

ErrorRecord オブジェクトまたは .NET 例外を指定することもできますthrow。 次の例では、キーワード (keyword)をthrow使用して System.FormatException オブジェクトをスローします。

$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.

結果のエラー

キーワード (keyword)は throwErrorRecord オブジェクトを生成できます。 ErrorRecord オブジェクトの Exception プロパティには、RuntimeException オブジェクトが含まれています。 ErrorRecord オブジェクトと RuntimeException オブジェクトの残りの部分は、スローされるオブジェクトによって異なります。

オブジェクトは throwErrorRecord オブジェクトにラップされ、ErrorRecord オブジェクトは自動変数に自動的に $Error 保存されます。

を使用して throw 必須パラメーターを作成する

PowerShell の過去のバージョンとは異なり、パラメーターの検証には throw キーワード (keyword)を使用しないでください。 正しい方法については 、「about_Functions_Advanced_Parameters 」を参照してください。

こちらもご覧ください