Manejo de excepciones


Cuando programamos, muchas veces nos encontramos con situaciones inesperadas que pueden hacer que nuestro programa falle. Por ejemplo, si intentamos dividir un n煤mero por cero, el programa fallar谩.

驴C贸mo podemos manejar estas situaciones para que nuestro programa no falle? (o al menos lo haga de forma controlada)

驴Qu茅 es una excepci贸n?


Una excepci贸n es un evento que interrumpe el flujo normal de un programa.

Ejemplos


Excepci贸n Descripci贸n
ZeroDivisionError Divisi贸n por cero
NameError Variable no definida
TypeError Tipo de dato incorrecto
IndexError 脥ndice fuera de rango
KeyError Clave no encontrada
ValueError Valor no v谩lido
FileNotFoundError Archivo no encontrado
IOError Error de entrada/salida
KeyboardInterrupt Interrupci贸n por teclado

驴C贸mo manejar excepciones?


Para manejar excepciones, utilizamos el bloque try-except.

Sintaxis


try:
    # C贸digo que puede generar una excepci贸n
except Excepcion:
    # C贸digo que se ejecuta si ocurre la excepci贸n

Ejemplos


try:
    numero = int(input("Ingrese un numero: "))
    resultado = 10 / numero
    print("El resultado es: ", resultado)
except ZeroDivisionError:
    print("No se puede dividir por cero")
except ValueError:
    print("Debe ingresar un n煤mero")


Capturar todas las excepciones


try:
    numero = int(input("Ingrese un numero: "))
    resultado = 10 / numero
    print("El resultado es: ", resultado)
except Exception as e:
    print("Ocurri贸 un error: ", e)

Bloque else


try:
    numero = int(input("Ingrese un numero: "))
    resultado = 10 / numero
    print("El resultado es: ", resultado)
except Exception as e:
    print("Ocurri贸 un error: ", e)
else:
    print("No ocurri贸 ning煤n error")

Bloque finally


try:
    numero = int(input("Ingrese un numero: "))
    resultado = 10 / numero
    print("El resultado es: ", resultado)
except Exception as e:
    print("Ocurri贸 un error: ", e)
finally:
    print("Fin del programa")


Actividades


1. Divisi贸n por cero


Crear un programa que:

  • Pida al usuario que ingrese dos n煤meros
  • Divida el primer n煤mero por el segundo
  • Muestre el resultado en pantalla
  • Maneje la excepci贸n ZeroDivisionError


2. Suma de n煤meros


Crear un programa que:

  • Pida al usuario que ingrese dos n煤meros
  • Sume los n煤meros
  • Muestre el resultado en pantalla
  • Maneje la excepci贸n ValueError