Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.