Detección de excepciones
Antes de empezar a escribir tus propias excepciones personalizadas, asegúrate de que conoces los fundamentos del manejo de excepciones.
En este ejercicio, se te da una función invert_at_index(x, ind)
que toma dos argumentos, una lista x
y un índice ind
, e invierte el elemento de la lista en ese índice. Por ejemplo invert_at_index([5,6,7], 0)
devuelve 1/5
, o 0.2
.
Tu objetivo es implementar la gestión de errores para lanzar excepciones personalizadas en función del tipo de error que se produzca.
Este ejercicio forma parte del curso
Introducción a la Programación Orientada a Objetos en Python
Instrucciones de ejercicio
Utiliza un patrón try
- except
- except
(con dos bloques except
) dentro de la función para atrapar y manejar dos excepciones de la siguiente manera:
try
ejecutando el código tal cual, devolviendo1/x[ind]
.- si aparece
ZeroDivisionError
, imprime"Cannot divide by zero!"
, - si se produce
IndexError
, imprime"Index out of range!"
Sabes que lo has hecho bien si el código se ejecuta sin errores, y la salida en la consola es:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Modify the function to catch exceptions
def invert_at_index(x, ind):
____:
return 1/x[ind]
_____:
print("____")
____:
print("____")
a_list = [5,6,0,7]
# Works okay
print(invert_at_index(a_list, 1))
# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))
# Potential IndexError
print(invert_at_index(a_list, 5))