Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Korte beschrijving
Beschrijft het throw trefwoord waarmee een afsluitfout wordt gegenereerd.
Lange beschrijving
Het throw trefwoord veroorzaakt een afsluitfout. U kunt het throw trefwoord gebruiken om de verwerking van een opdracht, functie of script te stoppen.
U kunt bijvoorbeeld het throw trefwoord in het scriptblok van een if instructie gebruiken om te reageren op een voorwaarde of in het catch blok van eentry-catch-finallyinstructie.
Het throw trefwoord kan elk object genereren, zoals een gebruikersberichttekenreeks of het object dat de fout heeft veroorzaakt.
Syntaxis
De syntaxis van het throw trefwoord is als volgt:
throw [<expression>]
De expressie in de throw syntaxis is optioneel. Wanneer de throw instructie niet in een catch blok wordt weergegeven en er geen expressie wordt opgenomen, wordt er een scripthaltefout gegenereerd .
throw
Exception: ScriptHalted
Als het throw trefwoord wordt gebruikt in een catch blok zonder expressie, wordt de huidige RuntimeException opnieuw gegooid. Zie about_Try_Catch_Finally voor meer informatie.
Een tekenreeks genereren
De optionele expressie in een throw instructie kan een tekenreeks zijn, zoals wordt weergegeven in het volgende voorbeeld:
throw "This is an error."
Exception: This is an error.
Andere objecten gooien
De expressie kan ook een object zijn dat het object genereert dat het PowerShell-proces vertegenwoordigt, zoals wordt weergegeven in het volgende voorbeeld:
throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)
U kunt de eigenschap TargetObject van het object ErrorRecord in de $Error automatische variabele gebruiken om de fout te onderzoeken.
$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
U kunt ook throw een ErrorRecord-object of een .NET-uitzondering. In het volgende voorbeeld wordt het throw trefwoord gebruikt om een System.FormatException-object te gooien.
$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.
De resulterende fout
Het throw trefwoord kan een ErrorRecord-object genereren. De eigenschap Uitzondering van het object ErrorRecord bevat een RuntimeException-object .
De rest van het object ErrorRecord en het RuntimeException-object varieert, afhankelijk van het gegenereerde object.
Het throw object wordt verpakt in een ErrorRecord-object en het object ErrorRecord wordt automatisch opgeslagen in de $Error automatische variabele.
Een throw verplichte parameter maken
Gebruik in tegenstelling tot eerdere versies van PowerShell het trefwoord niet throw voor parametervalidatie. Zie about_Functions_Advanced_Parameters voor de juiste manier.