Megosztás a következőn keresztül:


about_Throw

Rövid leírás

throw A megszüntetési hibát generáló kulcsszót ismerteti.

Hosszú leírás

A throw kulcsszó végződési hibát okoz. A parancsok, függvények vagy szkriptek feldolgozásának leállításához használhatja a throw kulcsszót.

Egy throw utasítás szkriptblokkjában vagy egy ifcatchtry-catch utasítás - blokkjában például a finally kulcsszót használhatja.

A throw kulcsszó bármilyen objektumot, például felhasználói üzenet sztringet vagy a hibát okozó objektumot is képes eldobni.

Szemantika

A throw kulcsszó szintaxisa a következő:

throw [<expression>]

A throw szintaxisban szereplő kifejezés nem kötelező. Ha a throw utasítás nem jelenik meg egy catch blokkban, és nem tartalmaz kifejezést, ScriptHalted hibát generál.

throw
Exception: ScriptHalted

Ha a throw kulcsszó kifejezés nélküli catch blokkban van használva, az ismét az aktuális RuntimeExceptiont dobja. További információért lásd a about_Try_Catch_Finallyrészt.

Sztring dobása

A throw utasítás választható kifejezése lehet sztring, ahogy az alábbi példában is látható:

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

Más objektumok dobása

A kifejezés lehet olyan objektum is, amely a PowerShell-folyamatot jelképező objektumot dobja, ahogyan az az alábbi példában is látható:

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

Az automatikus változóban található ErrorRecord objektum $Error tulajdonságával megvizsgálhatja a hibát.

$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

throw objektumot vagy .NET-kivételt is . Az alábbi példa a throw kulcsszót használja egy System.FormatException objektum dobásához.

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

Az eredményként kapott hiba

A throw kulcsszó ErrorRecord objektumot hozhat létre. A ErrorRecord objektum Kivétel tulajdonsága RuntimeException objektumot tartalmaz. A ErrorRecord objektum és a RuntimeException objektum fennmaradó része a kidobott objektumtól függően változik.

A throw objektum egy ErrorRecord objektumba van csomagolva, az ErrorRecord objektum pedig automatikusan a $Error automatikus változóba lesz mentve.

Kötelező paraméter létrehozása throw használatával

A PowerShell korábbi verzióitól eltérően ne használja a throw kulcsszót a paraméterek érvényesítéséhez. A helyes útért tekintse meg a about_Functions_Advanced_Parameters.

Lásd még