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é slovo throw způsobí ukončující chybu. Pomocí klíčového slova throw můžete zastavit zpracování příkazu, funkce nebo skriptu.

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

Klíčové slovo throw 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 slova throw je následující:

throw [<expression>]

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

throw
Exception: ScriptHalted

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

Vyvolání řetězce

Volitelný výraz v příkazu throw 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á klíčové slovo throw vyvolá 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é slovo throw může generovat objekt ErrorRecord. Vlastnost Exception objektu ErrorRecord obsahuje objekt RuntimeException. Zbývající část objektu ErrorRecord a objekt RuntimeException se liší v závislosti na vyvolaném objektu.

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

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

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

Viz také