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 unafinally
try
-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.