Tutorial sobre el manejo de Errores y Excepciones en Python, Guía con ejemplos.

Python gestiona los errores de dos formas diferentes: por un lado tenemos los típicos Errores de Sintaxis y por otro las Excepciones. En esta pequeña guía explicaré cada uno de ellos.

Errores de Sintaxis

Los errores de sintaxis se producen cuando escribimos código y este no está bien escrito, por lo que Python nos devolverá un SyntaxError o Error de Sintaxis.

Lo normal cuando obtenemos un error, es modificar nuestro código y de está forma evitamos que el programa se detenga. Pero esta no siempre es la forma más eficaz de hacerlo ya que podemos crear verificaciones condicionales para evitar que se produzcan errores.

Excepciones

Cuando escribimos código y este no se comporta como debe, Python también nos puede devolver Excepciones. Entre las excepciones más comunes tenemos: TypeError, IndexError, ValueError o NameError.

Si necesitas consultar información detallada sobre todos los tipos de excepciones y cuando se producen cada uno de ellas, podéis seguir este enlace de la documentación oficial de Python.

La construcción Try-Except

La construcción try-except nos permite controlar las excepciones que puedan producirse en nuestro código. Continuando con el ejemplo anterior podemos incluir la función open() en un bloque try. De esta forma se intenta abrir el fichero y si no se consigue accedemos al bloque except, donde podemos gestionar el error que se ha producido.

Si retornamos None un bloque except, le estaremos diciendo que no continúe ejecutando el resto del código. Y recuerda que podemos incluir tantos bloques except como necesitemos.

Lanzar Errores Personalizados

En Python podemos lanzar excepciones cuando estás ocurran y para ello usaremos la palabra clave raise. Supongamos la siguiente función que valida un nombre de usuario. Podemos lanzar un error personalizado cuando el nombre de usuario no contenga ningún carácter.

Una alternativa a la palabra clave raise y que usaremos para evitar situaciones que nunca deberían suceder, es la palabra clave assert. Assert intenta comprobar que una expresión condicional es verdadera y si es falsa genera un error con el mensaje que le indiquemos.

Los assert suelen ser muy útiles cuando depuramos códigos que no se comporta de la manera que esperamos. Podemos incluirlos en la parte del código donde algo que no debería estar sucediendo, está sucediendo.

Pruebas para Errores esperados (expected errors)

Cuando realizamos una Prueba Unitaria y queremos lanzar un error con raise, usaremos el método assertRaises(), proporcionado por el módulo de prueba unittest. Veamos la función iva() de nuestro tutorial de Pruebas Unitarias con Python, cuando recibe parámetros que no tienen ningún sentido, como por ejemplo un valor negativo.

El método que hemos creado llama a la función que queremos probar usando un bloque try-except y comprueba que genera el error que esperamos. Por lo que vamos a necesitar modificar nuestra función iva() indicando el tipo de error ValueError, que se mostrará cuando el importe sea menor que 1.

 

 

Etiquetado

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.