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
Exception: 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."
Exception: 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)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)
K prozkoumání chyby můžete použít vlastnost TargetObject objektu ErrorRecord v $Error
automatické proměnné.
$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
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
OperationStopped: 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 .