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 kulcsszóval throw
leállíthatja a parancsok, függvények vagy szkriptek feldolgozását.
A kulcsszót például egy utasítás szkriptblokkjában használhatja arra, hogy reagáljon egy feltételre vagy egycatch
finally
try
-catch
-utasítás blokkjára.if
throw
A throw
kulcsszó bármilyen objektumot képes eldobni, például egy felhasználói üzenet sztringet vagy a hibát okozó objektumot.
Syntax
A kulcsszó szintaxisa a throw
következő:
throw [<expression>]
A szintaxisban szereplő throw
kifejezés nem kötelező. Ha az throw
utasítás nem jelenik meg egy catch
blokkban, és nem tartalmaz kifejezést, szkripthalted hibát okoz.
throw
ScriptHalted
At line:1 char:6
+ throw <<<<
+ CategoryInfo : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : ScriptHalted
Ha a throw
kulcsszó kifejezés catch
nélküli blokkban van használva, az ismét az aktuális RuntimeExceptiont dobja. További információ: about_Try_Catch_Finally.
Sztring dobása
Az utasítás opcionális throw
kifejezése lehet sztring, ahogyan az alábbi példában is látható:
throw "This is an error."
This is an error.
At line:1 char:6
+ throw <<<< "This is an error."
+ CategoryInfo : OperationStopped: (This is an error.:String) [], R
untimeException
+ FullyQualifiedErrorId : 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)
At line:1 char:6
+ throw <<<< (get-process PowerShell)
+ CategoryInfo : OperationStopped: (System.Diagnostics.Process (Pow
erShell):Process) [],
RuntimeException
+ FullyQualifiedErrorId : System.Diagnostics.Process (PowerShell)
Az automatikus változóban $Error
az ErrorRecord objektum TargetObject tulajdonságával megvizsgálhatja a hibát.
$Error[0].TargetObject
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
319 26 61016 70864 568 3.28 5548 PowerShell
ErrorRecord objektumot vagy .NET-kivételt is throw
megadhat. Az alábbi példa a throw
kulcsszót használja a System.FormatException objektum eldobásához.
$formatError = New-Object System.FormatException
throw $formatError
One of the identified items was in an invalid format.
At line:1 char:6
+ throw <<<< $formatError
+ CategoryInfo : OperationStopped: (:) [], FormatException
+ FullyQualifiedErrorId : One of the identified items was in an invalid
format.
Az eredményként kapott hiba
A throw
kulcsszó létrehozhat egy ErrorRecord objektumot . Az ErrorRecord objektum Kivétel tulajdonsága runtimeException objektumot tartalmaz.
Az ErrorRecord objektum és a RuntimeException objektum fennmaradó része a kidobott objektumtól függően változik.
Az throw
objektum egy ErrorRecord objektumba van csomagolva, és a ErrorRecord objektum automatikusan az automatikus változóba $Error
lesz mentve.
Kötelező throw
paraméter létrehozása
A PowerShell korábbi verzióival ellentétben ne használja a kulcsszót a throw
paraméterérvényesítéshez. A helyes útért tekintse meg a about_Functions_Advanced_Parameters .
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: