¿Cómo manejo errores y excepciones en Python?

El manejo de errores y excepciones es un aspecto crucial en la programación en Python, ya que permite a los desarrolladores gestionar situaciones inesperadas de manera controlada. A continuación, se presentan los conceptos clave y técnicas para manejar errores y excepciones en Python.

1. ¿Qué son los Errores y Excepciones?

Un error es un problema en el código que impide que el programa se ejecute correctamente. Las excepciones son errores que ocurren durante la ejecución del programa. Python tiene varios tipos de excepciones, y la mayoría de ellas son derivadas de la clase base Exception.

2. Manejo de Excepciones con try y except

La forma más común de manejar excepciones es utilizando los bloques try y except. El código que puede generar una excepción se coloca dentro del bloque try, y las excepciones se manejan en el bloque except.

try:
    # Código que puede generar una excepción
    resultado = 10 / 0
except ZeroDivisionError:
    # Manejo de la excepción
    print("Error: No se puede dividir por cero.")

3. Captura de Excepciones Específicas

Es recomendable capturar excepciones específicas en lugar de usar un bloque except genérico. Esto permite un manejo más preciso de los errores:

try:
    lista = [1, 2, 3]
    print(lista[5])  # Intento de acceder a un índice que no existe
except IndexError:
    print("Error: Índice fuera de rango.")

4. Uso de else y finally

Además de try y except, puedes usar los bloques else y finally:

  • else: Se ejecuta si no se produce ninguna excepción en el bloque try.
  • finally: Se ejecuta siempre, independientemente de si ocurrió una excepción o no. Es útil para liberar recursos.
try:
    f = open("archivo.txt")
except FileNotFoundError:
    print("Error: El archivo no se encontró.")
else:
    contenido = f.read()
    print(contenido)
finally:
    f.close()  # Asegura que el archivo se cierre

5. Lanzar Excepciones con raise

Puedes lanzar excepciones manualmente utilizando la palabra clave raise. Esto es útil cuando deseas crear condiciones específicas para las excepciones:

def dividir(a, b):
    if b == 0:
        raise ValueError("Error: No se puede dividir por cero.")
    return a / b

try:
    resultado = dividir(10, 0)
except ValueError as e:
    print(e)

6. Creación de Excepciones Personalizadas

También puedes definir tus propias excepciones heredando de la clase Exception:

class MiExcepcion(Exception):
    pass

try:
    raise MiExcepcion("Este es un error personalizado.")
except MiExcepcion as e:
    print(e)

Conclusión

Manejar errores y excepciones en Python es fundamental para crear programas robustos y confiables. Al utilizar los bloques try, except, else y finally, así como al lanzar excepciones personalizadas, puedes asegurarte de que tu código maneje adecuadamente las situaciones inesperadas.

Comentarios

Entradas populares de este blog

Ejemplo para hacer una imagen circular en CSS

Ejemplo para añadir un contorno a un texto en CSS

Ejemplo para crear un tooltip con CSS