si es como yo, no solo nunca ha cometido un error en su script, sino que todas las fuerzas externas que están fuera de su control también funcionan siempre como se esperaba… Poniendo una pequeña pausa en el sarcasmo, ¿qué hacen las personas sin el toque mágico de PowerShell? Se embarcan en la antigua batalla que ha durado generaciones llamada manejo de errores.

ejemplo de manejo de errores de PowerShell

el manejo de errores con PowerShell ayuda a garantizar que una excepción inesperada no permita que un script siga causando problemas., Echemos un vistazo a un script que se asegurará de que solo las personas geniales tengan acceso a todas las cosas geniales. (Ver Get-Content)

funciona muy bien! Sin embargo, Kris Powell se ha enterado de la lista genial, y enojado por ser dejado fuera de la lista, realiza una acción que prueba que tenemos razón en mantenerlo fuera. Elimina a la gente genial.csv.

la Próxima vez que se ejecute el script, podemos obtener una excepción:

Con un espacio en blanco $UpdatedCoolList variable se elimina a todos los de acceso. Muy mal Kris.,

Exceptions

antes de comenzar a manejar el sabotaje, es importante aprender sobre las excepciones. Una excepción es un error o un resultado inesperado que PowerShell necesita gestionar.

Hay dos tipos de excepciones: la terminación y no termina. La terminación de excepciones detiene el script en ejecución. Excepciones no terminantes simplemente escriba en la canalización de errores.

hacer una excepción no terminante una excepción terminante es simple. Puede establecer el parámetro del comando a-ErrorAction para detener.,

$UpdatedCoolList = Get-Content \\FileShare\Location\CoolPeople.csv -ErrorAction Stop

También puede establecer la acción predeterminada de todos los errores para detenerse configurando la variable $ErrorActionPreference = "Stop".

en la mayoría de los casos, un cmdlet genera una excepción Sin terminación, pero el manejo de errores con PowerShell requiere una excepción de terminación para funcionar.

Try/Catch/Finally

Después de -ErrorAction a Stop, se puede envolver en un bloque Try/Catch., Tryes donde ejecutamos el comando, y Catch es lo que se ejecutará si se encuentra con un error de terminación. (Ver Out-File)

en este script-block, capturamos la excepción y la colocamos en un archivo de registro. Break se usó para salir del script para que no continuara. Si hubiéramos dejado el bloque catch vacío absorbería el error y continuaría el script.

la última parte del manejo de errores con un bloque Try/Catch/Finally es el Finally., Esto se usa para proporcionar acciones que siempre se ejecutarán antes de salir del script (o continuar). Esto se usa principalmente para limpiar. Puede usarlo para cerrar conexiones de base de datos, Eliminar archivos o cerrar bloqueos de archivos. Finally le permite revertir cualquier cambio realizado como resultado del script, ya sea que se encuentre o no una excepción.

conclusión

Eso es todo para lo básico. Siempre que esté tratando con elementos que son volátiles o que están fuera de su control, el manejo de errores es una excelente manera de asegurarse de que su script no causará problemas si las cosas salen mal.