Академический Документы
Профессиональный Документы
Культура Документы
about_Trap
DESCRIPCIN BREVE
Describe una palabra clave que controla un error de terminacin.
DESCRIPCIN DETALLADA
Un error de terminacin detiene la ejecucin de una instruccin.
Si Windows PowerShell no controla un error de terminacin de
algn modo, tambin se detendr la ejecucin de la funcin o
script en la canalizacin actual. En otros lenguajes, como C#,
los errores de terminacin reciben el nombre de excepciones.
La palabra clave Trap especifica una lista de instrucciones que
se han de ejecutar cuando se produce un error de terminacin. Las
instrucciones Trap controlan los errores de terminacin y
permiten que la ejecucin del script o funcin contine en lugar
de detenerse.
Sintaxis
La instruccin Trap tiene la sintaxis siguiente:
trap [[<tipo de error>]] {<lista de instrucciones>}
La instruccin Trap incluye una lista de instrucciones para
ejecutarse cuando se produce un error de terminacin.
Opcionalmente, la palabra clave Trap puede especificar un tipo
de error. Un tipo de error requiere corchetes.
Un script o comando puede tener varias instrucciones Trap. Las
instrucciones Trap pueden aparecer en cualquier parte del
script o comando.
Interceptar todos los errores de terminacin
Cuando se produce un error de terminacin que no est
controlado de otra manera en un script o comando, Windows
PowerShell busca una instruccin Trap que controle el error. Si
hay una instruccin Trap, Windows PowerShell contina
ejecutando el script o comando en la instruccin Trap.
El ejemplo siguiente es una instruccin Trap muy simple:
trap {"Error detectado."}
Esta instruccin Trap intercepta cualquier error de
terminacin. El ejemplo siguiente es una funcin que contiene
esta instruccin Trap:
function TrapTest {
trap {"Error detectado."}
cadenaSinSentido
}
Esta funcin incluye una cadena "sin sentido" que produce un
error. La ejecucin de esta funcin devuelve lo siguiente:
C:\PS> TrapTest
Error detectado.
El ejemplo siguiente incluye una instruccin Trap que muestra
el error utilizando la variable automtica $_:
function TrapTest {
trap {"Error detectado: $_"}
cadenaSinSentido
}
La ejecucin de esta versin de la funcin devuelve lo siguiente:
C:\PS> TrapTest
Error detectado: El trmino 'cadenaSinSentido' no se
reconoce como nombre de un cmdlet, funcin, archivo de
script o programa ejecutable. Compruebe si escribi
correctamente el nombre o, si incluy una ruta de acceso,
compruebe que dicha ruta es correcta e intntelo de nuevo.
Las instrucciones Trap pueden ser tambin ms complejas. Una
instruccin Trap puede incluir varias condiciones o llamadas a
funciones. Puede registrar, probar o incluso ejecutar otro programa.
Interceptar errores de terminacin especificados
El ejemplo siguiente es una instruccin Trap que intercepta el
tipo de error CommandNotFoundException:
trap [System.Management.Automation.CommandNotFoundException]
{"Error de comando interceptado"}
Cuando una funcin o script encuentra una cadena que no
coincide con un comando conocido, esta instruccin Trap muestra
la cadena "Error de comando interceptado". Despus de ejecutar
cualquier instruccin de la lista de instrucciones Trap,
Windows PowerShell escribe el objeto de error en la secuencia
de error y, a continuacin, contina el script.
Windows PowerShell utiliza los tipos de excepcin de Microsoft
.NET Framework. El ejemplo siguiente especifica el tipo de
error System.Exception:
trap [System.Exception] {"Error interceptado"}
El tipo de error CommandNotFoundException se hereda del tipo