micropython-gestion-de-excepciones

Cómo usar excepciones en MicroPython

  • 4 min

En este tutorial vamos a ver qué son y cómo gestionar las excepciones en MicroPython para manejar errores en nuestro código.3

Una excepción es un evento que ocurre durante la ejecución de un programa y que interrumpe el flujo normal de las instrucciones.

Estas situaciones pueden ser causadas por errores en el código, condiciones inesperadas en el hardware o problemas en los datos de entrada.

En MicroPython, las excepciones son objetos que representan estos errores. Cuando ocurre una excepción, el programa se detiene a menos que la excepción sea capturada y gestionada.

Estructura básica de gestión de excepciones

En MicroPython, la gestión de excepciones se realiza utilizando los bloques try y except. La estructura básica es la siguiente:

try:
    # Código que puede generar una excepción
    resultado = dividir(10, 0)
except ZeroDivisionError:
    # Código que se ejecuta si ocurre una excepción ZeroDivisionError
    print("Error: No se puede dividir por cero.")

Aquí colocamos el código que puede generar una excepción. Si ocurre una excepción dentro de este bloque, el flujo del programa se desvía al bloque except.

Aquí manejamos la excepción. Podemos especificar el tipo de excepción que queremos capturar (por ejemplo, ZeroDivisionError) o usar un except genérico para capturar cualquier excepción.

Este bloque se ejecuta si no se genera ninguna excepción en el bloque try.

Este bloque se ejecuta siempre, independientemente de si se generó una excepción o no. Es útil para liberar recursos o realizar tareas de limpieza.

Vamos a verlo con un ejemplo completo que incluya los bloques try, except, else y finally

try:
    resultado = dividir(10, 2)  # Esto no generará una excepción
except ZeroDivisionError:
    print("Error: No se puede dividir por cero.")
else:
    print(f"El resultado es: {resultado}")
finally:
    print("Fin del bloque try-except.")

En este ejemplo, como no se genera una excepción, se ejecutan los bloques else y finally.

También podemos capturar múltiples tipos de excepciones en un solo bloque try-except:

try:
    valor = int("no es un número")  # Esto generará un ValueError
except ValueError:
    print("Error: Valor no válido.")
except TypeError:
    print("Error: Tipo de dato incorrecto.")

Tipos comunes de excepciones en MicroPython

MicroPython define varios tipos de excepciones que podemos capturar y manejar. Algunas de las más comunes son:

ErrorDescripción
ZeroDivisionErrorOcurre al intentar dividir por cero.
TypeErrorOcurre cuando se realiza una operación con tipos de datos incompatibles.
ValueErrorOcurre cuando se pasa un valor inapropiado a una función.
IndexErrorOcurre al intentar acceder a un índice fuera de los límites de una lista o array.
NameErrorOcurre cuando se intenta usar una variable o función que no está definida.
OSErrorOcurre en operaciones relacionadas con el sistema de archivos o E/S (por ejemplo, al intentar abrir un archivo que no existe).

Ejemplos prácticos