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 unafinallytry-catch-instrucció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:

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 .

throw
Exception: 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:

throw "This is an error."
Exception: 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:

throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)

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

$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

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 .

$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: 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