Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Breve descrizione
Descrive la parola chiave throw che genera un errore irreversibile.
Descrizione lunga
La parola chiave throw causa un errore irreversibile. È possibile usare la parola chiave throw per arrestare l'elaborazione di un comando, una funzione o uno script.
Ad esempio, è possibile usare la parola chiave throw nel blocco di script di un'istruzione if per rispondere a una condizione o nel blocco catch di un'istruzione try-catch-finally.
La parola chiave throw può generare qualsiasi oggetto, ad esempio una stringa di messaggio utente o l'oggetto che ha causato l'errore.
Sintassi
La sintassi della parola chiave throw è la seguente:
throw [<expression>]
L'espressione nella sintassi throw è facoltativa. Quando l'istruzione throw non viene visualizzata in un blocco catch e non include un'espressione, genera un errore ScriptHalted.
throw
Exception: ScriptHalted
Se la parola chiave throw viene usata in un blocco catch senza un'espressione, genera nuovamente l'eccezione RuntimeException corrente. Per ulteriori informazioni, vedere about_Try_Catch_Finally.
Lancio di una stringa
L'espressione facoltativa in un'istruzione throw può essere una stringa, come illustrato nell'esempio seguente:
throw "This is an error."
Exception: This is an error.
Lanciare altri oggetti
L'espressione può anche essere un oggetto che genera l'oggetto che rappresenta il processo di PowerShell, come illustrato nell'esempio seguente:
throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)
È possibile utilizzare la proprietà TargetObject dell'oggetto ErrorRecord nella variabile automatica $Error per esaminare l'errore.
$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
È anche possibile throw per lanciare un oggetto System.FormatException.
$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.
Errore risultante
La parola chiave throw può generare un oggetto ErrorRecord . La proprietà Exception dell'oggetto ErrorRecord contiene un oggetto RuntimeException.
Il resto dell'oggetto ErrorRecord e dell'oggetto RuntimeException varia a seconda dell'oggetto lanciato.
L'oggetto throw viene avvolto in un oggetto ErrorRecord e l'oggetto ErrorRecord viene salvato automaticamente nella variabile automatica $Error.
Uso di throw per creare un parametro obbligatorio
A differenza delle versioni precedenti di PowerShell, non usare la parola chiave throw per la convalida dei parametri. Vedere about_Functions_Advanced_Parameters per il modo corretto.