Manejo de Errores en Python

Técnicas de Gestión de Excepciones y Depuración de Código

Aprende a manejar excepciones y depurar tu código Python de forma efectiva. Este tutorial cubre los bloques try/except, logging y técnicas comunes de depuración para mejorar la fiabilidad de tu código.

Programación
Autor/a
Afiliación
Fecha de publicación

5 de febrero de 2024

Fecha de modificación

9 de mayo de 2025

Palabras clave

Manejo de errores en Python, Depuración en Python, try except, Depuración en Python, Registro en Python

Introducción

La gestión de errores es un componente crítico para escribir código Python robusto y fiable. Al anticipar posibles errores y gestionar las excepciones con gracia, puede evitar que sus programas se bloqueen inesperadamente y proporcionar información significativa a los usuarios o desarrolladores. En este tutorial, aprenderá a utilizar bloques try/except para capturar excepciones, a utilizar el módulo de registro integrado para registrar errores y algunas técnicas comunes de depuración para solucionar problemas de forma eficaz.



Manejo básico de errores con try/except

La forma más sencilla de manejar errores en Python es utilizando un bloque try/except. Esto te permite ‘atrapar’ excepciones y manejarlas de forma controlada.

Ejemplo: Atrapando un Error de División

try:
    result = 10 / 0
except ZeroDivisionError:
    print("Error: Division by zero is not allowed!")

En este ejemplo, dividir por cero genera un error ZeroDivisionError, que es capturado por el bloque except, evitando que el programa se bloquee.

Uso de Bloques Except Múltiples

Puedes manejar diferentes tipos de excepciones con múltiples bloques except. Esto es útil cuando esperas diferentes tipos de errores en tu código.

Ejemplo: Manejo de Múltiples Excepciones

try:
    number = int("abc")  # Esto generará un ValueError
    result = 10 / number
except ValueError:
    print("Error: The provided value is not a valid integer!")
except ZeroDivisionError:
    print("Error: Division by zero is not allowed!")

Depuración con Registro

En lugar de simplemente imprimir los errores, a menudo es más útil registrarlos. El módulo logging proporciona un marco flexible para emitir mensajes de registro desde los programas Python.

Ejemplo: Registro de Errores

import logging

# Configurar el registro
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s")

try:
    value = int("abc")  # Esto generará un ValueError
except ValueError as e:
    logging.error("ValueError occurred: %s", e)

En este ejemplo, si se produce un error, se registrará con una marca de tiempo y un nivel de error, lo que resulta muy útil para depurar aplicaciones de mayor tamaño.

Depurando con el depurador de Python (pdb)

Para una depuración más profunda, el depurador integrado de Python (pdb) te permite recorrer tu código de forma interactiva.

Ejemplo: Uso de pdb

import pdb

def faulty_function():
    a = 10
    b = 0
    pdb.set_trace()  # Iniciar el depurador aquí
    result = a / b
    return result

faulty_function()

Cuando ejecute este código, el depurador detendrá la ejecución en pdb.set_trace(), lo que le permitirá inspeccionar variables y recorrer el código para identificar problemas.

Conclusión

La depuración y la gestión eficaz de errores son habilidades esenciales para cualquier programador de Python. Mediante el uso de bloques try/except, registro y herramientas como pdb, puede crear código que gestione con elegancia los errores inesperados y sea más fácil de mantener y solucionar. Practique estas técnicas en sus proyectos para construir aplicaciones más robustas y fiables.

Lecturas adicionales

Feliz programación, y que tus sesiones de depuración sean cortas y fructíferas!

Explorar más artículos

Nota

Aquí hay más artículos de la misma categoría para ayudarte a profundizar en el tema.

placeholder

placeholder
No hay resultados
Volver arriba

Reutilización

Cómo citar

BibTeX
@online{kassambara2024,
  author = {Kassambara, Alboukadel},
  title = {Manejo de Errores en Python},
  date = {2024-02-05},
  url = {https://www.datanovia.com/es/learn/programming/python/advanced/error-handling.html},
  langid = {es}
}
Por favor, cita este trabajo como:
Kassambara, Alboukadel. 2024. “Manejo de Errores en Python.” February 5, 2024. https://www.datanovia.com/es/learn/programming/python/advanced/error-handling.html.