Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Kort beskrivning
Beskriver nyckelordet Kasta, som genererar ett avslutande fel.
Lång beskrivning
Nyckelordet Throw orsakar ett avslutande fel. Du kan använda nyckelordet Throw för att stoppa bearbetningen av ett kommando, en funktion eller ett skript.
Du kan till exempel använda nyckelordet Throw i skriptblocket för en If-instruktion för att svara på ett villkor eller i blocket Catch i en Try-Catch-Finally-instruktion. Du kan också använda nyckelordet Throw i en parameterdeklaration för att göra en funktionsparameter obligatorisk.
Nyckelordet Throw kan utlösa vilket objekt som helst, till exempel en användarmeddelandesträng eller det objekt som orsakade felet.
Syntax
Syntaxen för nyckelordet Throw är följande:
throw [<expression>]
Uttrycket i Throw-syntaxen är valfritt. När -instruktionen Throw inte visas i ett Catch block och den inte innehåller ett uttryck genererar den ett ScriptStopped fel.
C:\PS> throw
Exception: ScriptHalted
Om nyckelordet Throw används i ett Catch block utan ett uttryck genererar det aktuella RuntimeException igen. Mer information finns i about_Try_Catch_Finally.
Kasta en sträng
Det valfria uttrycket i en Throw -instruktion kan vara en sträng, som du ser i följande exempel:
C:\PS> throw "This is an error."
Exception: This is an error.
Kasta andra objekt
Uttrycket kan också vara ett objekt som genererar objektet som representerar PowerShell-processen, enligt följande exempel:
C:\PS> throw (get-process Pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)
Du kan använda egenskapen TargetObject för ErrorRecord-objektet i den automatiska variabeln $error för att undersöka felet.
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
Du kan också utlösa ett ErrorRecord-objekt eller ett . I följande exempel används nyckelordet Throw för att utlösa ett System.FormatException objekt.
C:\PS> $formatError = new-object system.formatexception
C:\PS> throw $formatError
OperationStopped: One of the identified items was in an invalid format.
Det resulterande felet
Nyckelordet Throw kan generera ett ErrorRecord-objekt. Egenskapen Exception för ErrorRecord-objektet innehåller ett RuntimeException-objekt. Resten av ErrorRecord-objektet och RuntimeException-objektet varierar med det objekt som nyckelordet Throw genererar.
RunTimeException-objektet omsluts av ett ErrorRecord-objekt och ErrorRecord-objektet sparas automatiskt i den $Error automatiska variabeln.
Använda Throw för att skapa en obligatorisk parameter
Till skillnad från tidigare versioner av PowerShell ska du inte använda nyckelordet Throw för parameterverifiering. Se about_Functions_Advanced_Parameters för rätt sätt.