En este tema, aprenderemos cómo manejar excepciones en Python. Las excepciones son eventos que ocurren durante la ejecución de un programa y que pueden interrumpir el flujo normal de las instrucciones. Python proporciona mecanismos para manejar estas excepciones de manera que el programa pueda continuar su ejecución o finalizar de manera controlada.

Conceptos Clave

  1. Excepciones: Eventos que ocurren durante la ejecución de un programa y que interrumpen el flujo normal de las instrucciones.
  2. Bloques try y except: Estructuras que permiten manejar excepciones.
  3. Bloque else: Se ejecuta si no se produce ninguna excepción.
  4. Bloque finally: Se ejecuta siempre, independientemente de si se produjo una excepción o no.

Bloques try y except

El manejo de excepciones en Python se realiza utilizando los bloques try y except. La sintaxis básica es la siguiente:

try:
    # Código que puede producir una excepción
    pass
except ExceptionType:
    # Código que se ejecuta si ocurre una excepción de tipo ExceptionType
    pass

Ejemplo Práctico

Vamos a ver un ejemplo práctico donde intentamos dividir dos números. Si el divisor es cero, se produce una excepción ZeroDivisionError.

try:
    numerator = 10
    denominator = 0
    result = numerator / denominator
    print("El resultado es:", result)
except ZeroDivisionError:
    print("Error: No se puede dividir por cero.")

Explicación:

  • El bloque try contiene el código que puede producir una excepción.
  • Si se produce una excepción ZeroDivisionError, el control pasa al bloque except, donde se maneja la excepción.

Múltiples Excepciones

Puedes manejar múltiples excepciones utilizando varios bloques except:

try:
    value = int(input("Introduce un número: "))
    result = 10 / value
    print("El resultado es:", result)
except ZeroDivisionError:
    print("Error: No se puede dividir por cero.")
except ValueError:
    print("Error: Entrada no válida. Por favor, introduce un número entero.")

Bloques else y finally

El bloque else se ejecuta si no se produce ninguna excepción, y el bloque finally se ejecuta siempre, independientemente de si se produjo una excepción o no.

try:
    value = int(input("Introduce un número: "))
    result = 10 / value
except ZeroDivisionError:
    print("Error: No se puede dividir por cero.")
except ValueError:
    print("Error: Entrada no válida. Por favor, introduce un número entero.")
else:
    print("El resultado es:", result)
finally:
    print("El bloque finally se ejecuta siempre.")

Ejercicio Práctico

Ejercicio 1

Escribe un programa que solicite al usuario que introduzca dos números y luego intente dividir el primero por el segundo. Maneja las excepciones ZeroDivisionError y ValueError.

def dividir_numeros():
    try:
        num1 = float(input("Introduce el primer número: "))
        num2 = float(input("Introduce el segundo número: "))
        resultado = num1 / num2
    except ZeroDivisionError:
        print("Error: No se puede dividir por cero.")
    except ValueError:
        print("Error: Entrada no válida. Por favor, introduce números.")
    else:
        print("El resultado de la división es:", resultado)
    finally:
        print("Operación completada.")

dividir_numeros()

Solución

def dividir_numeros():
    try:
        num1 = float(input("Introduce el primer número: "))
        num2 = float(input("Introduce el segundo número: "))
        resultado = num1 / num2
    except ZeroDivisionError:
        print("Error: No se puede dividir por cero.")
    except ValueError:
        print("Error: Entrada no válida. Por favor, introduce números.")
    else:
        print("El resultado de la división es:", resultado)
    finally:
        print("Operación completada.")

dividir_numeros()

Resumen

En esta sección, hemos aprendido cómo manejar excepciones en Python utilizando los bloques try, except, else y finally. Estos mecanismos nos permiten escribir programas más robustos y controlados, capaces de manejar errores de manera efectiva y continuar su ejecución o finalizar de manera controlada. En la próxima sección, exploraremos cómo lanzar nuestras propias excepciones personalizadas.

Curso de Programación en Python

Módulo 1: Introducción a Python

Módulo 2: Estructuras de Control

Módulo 3: Funciones y Módulos

Módulo 4: Estructuras de Datos

Módulo 5: Programación Orientada a Objetos

Módulo 6: Manejo de Archivos

Módulo 7: Manejo de Errores y Excepciones

Módulo 8: Temas Avanzados

Módulo 9: Pruebas y Depuración

Módulo 10: Desarrollo Web con Python

Módulo 11: Ciencia de Datos con Python

Módulo 12: Proyecto Final

© Copyright 2024. Todos los derechos reservados