En PowerShell un Error es el mensaje en letras rojas que vemos en pantalla cuando hay algún problema en la ejecución de los comandos.
Una Excepción es el objeto que contiene ese error.
Cuando se genera una Excepción, automáticamente se almacena en la variable $Error y se muestra en la canalización de error.
ErrorActionPreference
En PowerShell tenemos 2 tipos de errores:
- Errores Fatales: son errores que paran la ejecución de cmdlet o script. Son errores que por su gravedad, es necesario que no se ejecuten más comandos.
- Errores No Fatales: son errores que permiten que se continúe ejecutando el cmdlet o script.
Para gestionar los errores, tenemos una opción para que PowerShell sepa como actuar si se producen. Para ello definimos en la variable $ErrorActionPreference el comportamiento que queremos que tenga PowerShell cuando se produce un error.
Las opciones disponibles son:
- SilentlyContinue: se suprimen los mensajes de error y la ejecución continúa
- Stop: se detiene la ejecución
- Continue: es la opción por defecto. Se muestra el error y la ejecución continúa
- Inquire: pregunta al usuario como proceder
- Ignore: el error es ignorado y no se registra ni muestra. Es nuevo en la versión 3
Podemos establecer el contenido de la variable como cualquier otra
1 |
$ErrorActionPreference = "Stop" |
O podemos pasarlo como parámetro
1 |
get-childitem "C:\Carpeta" -ErrorAction "Inquire" |
Try/Catch/Finally
Para poder gestionar los errores con Try/Catch/Finally tenemos que hacer que los errores que queremos gestionar sean de tipo Fatal, por lo que necesitamos indicar que la acción preferida sea Stop.
La estructura sería la siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 |
Try { #En esta sección ejecutamos los comandos cuyos errores queremos controlar } Catch [Excepcion] { #En esta sección gestionamos una exceción específica } Catch { #En esta sección gestionamos cualquier tipo de excepción } Finally { #Esta sección se ejecuta siempre, haya o no una excepción } |
Ejemplo de Try/Catch/Finally
y su ejecución
y especificando la excepción a capturar
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?
Genial.
Excelente trabajo.