Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Descripción breve
Describe la palabra clave throw que genera un error de terminación.
Descripción larga
La palabra clave throw produce un error de terminación. Puede usar la palabra clave throw para detener el procesamiento de un comando, una función o un script.
Por ejemplo, puede usar la palabra clave throw en el bloque de script de una instrucción if para responder a una condición o en el bloque catch de una instrucción try-catch-finally.
La palabra clave throw puede lanzar cualquier objeto, como una cadena de mensaje de usuario o el objeto que provocó el error.
Sintaxis
La sintaxis de la palabra clave throw es la siguiente:
throw [<expression>]
La expresión de la sintaxis throw es opcional. Cuando la instrucción throw no aparece en un bloque catch y no incluye una expresión, genera un error ScriptHalted.
throw
Exception: ScriptHalted
Si la palabra clave throw se usa en un bloque de catch sin una expresión, inicia la excepción RuntimeException actual de nuevo. Para obtener más información, consulte about_Try_Catch_Finally.
Inicio de una cadena
La expresión opcional de una instrucción throw puede ser una cadena, como se muestra en el ejemplo siguiente:
throw "This is an error."
Exception: This is an error.
Lanzar 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 variable automática $Error 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 puede throw un objeto ErrorRecord o una excepción de .NET. En el ejemplo siguiente se usa la palabra clave throw para lanzar 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 palabra clave throw puede generar un objeto ErrorRecord. La propiedad Exception del objeto ErrorRecord contiene un objeto RuntimeException.
El resto del objeto ErrorRecord y del objeto RuntimeException varía dependiendo del objeto lanzado.
El objeto throw se envuelve en un objeto ErrorRecord, y el objeto ErrorRecord se guarda automáticamente en la variable automática $Error.
Uso de throw para crear un parámetro obligatorio
A diferencia de las versiones anteriores de PowerShell, no use la palabra clave throw para la validación de parámetros. Consulte about_Functions_Advanced_Parameters para conocer la manera correcta.