Leer en inglés

Compartir a través de


about_Throw

Descripción breve

Describe la throw palabra clave que genera un error de terminación.

Descripción larga

La throw palabra clave produce un error de terminación. Puede usar la throw palabra clave para detener el procesamiento de un comando, una función o un script.

Por ejemplo, puede usar la throw palabra clave en el bloque de script de una if instrucción para responder a una condición o en el catch bloque de unatry-catch-finallyinstrucción .

La throw palabra clave puede producir cualquier objeto, como una cadena de mensaje de usuario o el objeto que provocó el error.

Sintaxis

La sintaxis de la throw palabra clave es la siguiente:

PowerShell
throw [<expression>]

La expresión de la throw sintaxis es opcional. Cuando la throw instrucción no aparece en un catch bloque y no incluye una expresión, genera un error ScriptHalted .

PowerShell
throw
Output
ScriptHalted
At line:1 char:6
+ throw <<<<
+ CategoryInfo          : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : ScriptHalted

Si la throw palabra clave se usa en un catch bloque sin una expresión, inicia de nuevo la excepción RuntimeException actual. Para obtener más información, consulte about_Try_Catch_Finally.

Iniciar una cadena

La expresión opcional de una throw instrucción puede ser una cadena, como se muestra en el ejemplo siguiente:

PowerShell
throw "This is an error."
Output
This is an error.
At line:1 char:6
+ throw <<<<  "This is an error."
+ CategoryInfo          : OperationStopped: (This is an error.:String) [], R
untimeException
+ FullyQualifiedErrorId : This is an error.

Iniciar otros objetos

La expresión también puede ser un objeto que produce el objeto que representa el proceso de PowerShell, como se muestra en el ejemplo siguiente:

PowerShell
throw (Get-Process pwsh)
Output
At line:1 char:6
+ throw <<<<  (get-process PowerShell)
+ CategoryInfo          : OperationStopped: (System.Diagnostics.Process (Pow
erShell):Process) [],
RuntimeException
+ FullyQualifiedErrorId : System.Diagnostics.Process (PowerShell)

Puede usar la propiedad TargetObject del objeto ErrorRecord en la $Error variable automática para examinar el error.

PowerShell
$Error[0].TargetObject
Output
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
319      26    61016      70864   568     3.28   5548 PowerShell

También throw puede un objeto ErrorRecord o una excepción de .NET. En el ejemplo siguiente se usa la throw palabra clave para iniciar un objeto System.FormatException .

PowerShell
$formatError = New-Object System.FormatException
throw $formatError
Output
One of the identified items was in an invalid format.
At line:1 char:6
+ throw <<<<  $formatError
+ CategoryInfo          : OperationStopped: (:) [], FormatException
+ FullyQualifiedErrorId : One of the identified items was in an invalid
format.

El error resultante

La throw palabra clave puede generar un objeto ErrorRecord . La propiedad Exception del objeto ErrorRecord contiene un objeto RuntimeException . El resto del objeto ErrorRecord y el objeto RuntimeException varía en función del objeto producido.

El throw objeto se ajusta en un objeto ErrorRecord y el objeto ErrorRecord se guarda automáticamente en la $Error variable automática.

Uso throw de para crear un parámetro obligatorio

A diferencia de las versiones anteriores de PowerShell, no use la palabra clave para la throw validación de parámetros. Consulte about_Functions_Advanced_Parameters para obtener la manera correcta.

Consulte también