Sdílet prostřednictvím


about_Throw

Krátký popis

Popisuje throw klíčové slovo, které generuje ukončující chybu.

Dlouhý popis

Klíčové throw slovo způsobí ukončení chyby. Klíčové slovo můžete použít throw k zastavení zpracování příkazu, funkce nebo skriptu.

Můžete například použít throw klíčové slovo v bloku if skriptu příkazu k reakci na podmínku nebo v catch blokufinally try-catch-příkazu.

Klíčové throw slovo může vyvolat jakýkoli objekt, například řetězec zprávy uživatele nebo objekt, který způsobil chybu.

Syntaxe

Syntaxe klíčového throw slova je následující:

throw [<expression>]

Výraz v throw syntaxi je volitelný. Pokud se throw příkaz nezobrazí v catch bloku a neobsahuje výraz, vygeneruje chybu ScriptHalted .

throw
ScriptHalted
At line:1 char:6
+ throw <<<<
+ CategoryInfo          : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : ScriptHalted

throw Pokud je klíčové slovo použito v catch bloku bez výrazu, vyvolá aktuální RuntimeException znovu. Další informace najdete v tématu about_Try_Catch_Finally.

Vyvolání řetězce

Volitelný výraz v throw příkazu může být řetězec, jak je znázorněno v následujícím příkladu:

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.

Vyvolání jiných objektů

Výraz může být také objekt, který vyvolá objekt, který představuje proces PowerShellu, jak je znázorněno v následujícím příkladu:

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)

K prozkoumání chyby můžete použít vlastnost TargetObject objektu ErrorRecord v $Error automatické proměnné.

$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

Můžete také throw objekt ErrorRecord nebo výjimku .NET. Následující příklad používá throw klíčové slovo k vyvolání System.FormatException objektu.

$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.

Výsledná chyba

Klíčové throw slovo může generovat ErrorRecord objektu. Exception vlastnost ErrorRecord objekt obsahuje RuntimeException objekt. Zbývající část ErrorRecord objektu a RuntimeException objektu se liší v závislosti na objektu vyvolaném.

Objekt throw je zabalen do ErrorRecord objektu a ErrorRecord objekt je automaticky uložen v $Error automatické proměnné.

Použití throw k vytvoření povinného parametru

Na rozdíl od předchozích verzí PowerShellu nepoužívejte klíčové slovo pro ověření parametru throw . Správný způsob najdete v about_Functions_Advanced_Parameters .

Viz také