Delen via


about_Throw

Korte beschrijving

Beschrijft het throw trefwoord waarmee een afsluitfout wordt gegenereerd.

Lange beschrijving

Het throw trefwoord veroorzaakt een afsluitfout. U kunt het trefwoord throw gebruiken om de verwerking van een opdracht, functie of script te stoppen.

U kunt bijvoorbeeld het throw trefwoord in het instructieblok van een if instructie gebruiken om te reageren op een voorwaarde of in het catch blok van een try/catch/finally instructie.

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 wordt weergegeven in een catch blok en er geen expressie wordt opgenomen, wordt er een ScriptHalted-fout gegenereerd.

throw
Exception: ScriptHalted

Als het trefwoord throw wordt gebruikt in een catch blok zonder expressie, wordt de huidige RuntimeException opnieuw gegooid. Zie about_Try_Catch_Finallyvoor 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 ErrorRecord-object in de automatische variabele $Error 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 een throw-object of een .NET-uitzondering . In het volgende voorbeeld wordt het trefwoord throw 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 trefwoord throw kan een ErrorRecord-object genereren. De eigenschap Exception van het object ErrorRecord bevat een RuntimeException-object. De rest van het ErrorRecord-object 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

In tegenstelling tot eerdere versies van PowerShell, gebruikt u niet het throw trefwoord voor parametervalidatie. Zie about_Functions_Advanced_Parameters voor de juiste manier.

Zie ook