Clase 13: Manejo de excepciones
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