Sdílet prostřednictvím


about_Throw

Krátký popis

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

Dlouhý popis

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

Můžete například použít klíčové slovo Throw v bloku skriptu příkazu If pro reakci na podmínku nebo v bloku Catch příkazu Try-Catch-Finally. Můžete také použít klíčové slovo Throw v deklaraci parametru, aby byl parametr funkce povinný.

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

Syntaxe

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

throw [<expression>]

Výraz v syntaxi Throw je nepovinný. Pokud se příkaz Throw nezobrazí v bloku Catch a neobsahuje výraz, vygeneruje chybu ScriptHalted.

C:\PS> throw

Exception: ScriptHalted

Pokud je klíčové slovo Throw použito v bloku Catch bez výrazu, vyvolá znovu aktuální výjimku RuntimeException. Další informace naleznete v části 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:

C:\PS> 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:

C:\PS> throw (get-process Pwsh)

Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)

Ke kontrole chyby můžete použít vlastnost TargetObject objektu ErrorRecord v automatické proměnné $error.

C:\PS> $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é vyvolat objekt ErrorRecord nebo výjimku .NET. Následující příklad používá klíčové slovo Throw k vyvolání objektu System.FormatException.

C:\PS> $formatError = new-object system.formatexception

C:\PS> throw $formatError

OperationStopped: One of the identified items was in an invalid format.

Výsledná chyba

Klíčové slovo Throw může vygenerovat objekt ErrorRecord. Vlastnost Exception objektu ErrorRecord obsahuje objekt RuntimeException. Zbytek objektu ErrorRecord a objektu RuntimeException se liší podle objektu, který vyvolá klíčové slovo Throw.

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

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

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

Viz také