Python - Lección 19: Manejo de errores y excepciones:

Manejo de errores en Python

Muchas veces pueden darse condiciones en las que exista la posibilidad de que surja un error y nos interrumpa la ejecución del código. Esto puede darse por diferentes motivos, como ingresar mal un nombre de archivo a buscar y que este no exista, problemas de conexión momentáneos en la red y un muy extenso etcétera. Afortunadamente, en Python podemos controlar lo que sucede en caso de devolver un error y así evitar que el programa entero termine a causa de este.

Primero vamos a revisar los tipos de errores más comunes y lo que estos significan:

Error Descripción
1 ZeroDivisionError Se presenta cuando se intenta dividir un número por cero.
2 ImportError Se produce cuando intentas importar la libería que no está instalada o has provisto mal del nombre.
3 IndexError Aparece cuando el index no es encontrado en la secuencia. Por ejemplo, si la longitud de la lista es de 10 elementos y estás intentando acceder al índice decimo primero.
4 IdentationError Cuando la identación no es especificada correctamente.
5 ValueError Cuando la función integrada para un tipo de datos tiene el tipo correcto de argumentos, pero los argumentos tienen valores incorrectos especificados.
6 Exception La clase base para todas las exceptiones. Si no estás seguro de que tipo de error puede ocurrir puedes usar esta clase base.
7 Type Error Ocurre cuando un tipo incorrecto de función u operación es aplicada a un objeto.

De esta manera, si por ejemplo el usuario ingresa mal una palabra por la cual se filtrará el resultado de la base de datos o esta no existe, podemos desviar el flujo de nuestro programa en una nueva dirección.
El manejo de errores en Python funciona muy similar a la estructura condicional IF, utilizando el segmento de código TRY para declarar qué código queremos intentar ejecutar, seguido del segmento EXCEPT para especificar nuestro plan B en caso de que el código falle o se encuentre algún error inesperado:

 try:
 	resultado = 10 + '30'
   	print(resultado)
 except:
 	print('Parece que hubo un error')

Tenemos la posibilidad de cambiar el nombre del error por un alias para facilitar su identificación o para avisarnos en que parte del código se produjo el error:

try:
    print (idiomas)
except NameError as e:
    print ("Ha ocurrido un error.")
finally:
    # finally es opcional.
    print ("Salida impresa correctamente!")

Algo sumamente interesante que puede sernos de gran utilidad, es la posibilidad de generar errores adrede:

def imprimir_cinco_elementos(datos):
    if len(datos) !=5:
        raise ValueError("El argumento debe tener cinco elementos")
    for item in datos:
        print (item)

lista1 = [5,2]

imprimir_cinco_elementos(lista1)

Gracias a esto, podemos advertirle al usuario sobre una mala operación del programa o sobre condiciones que pueden hacer que el código no funcione directamente. El mismo podrá ver qué es lo que hizo mal e intentar la operación nuevamente corrigiendo la información ingresada.

<Tema anterior - Siguiente tema>

1 me gusta