Skip to content

Commit ed28e55

Browse files
authored
#10 - Python
1 parent 3e29f8e commit ed28e55

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
"""
2+
* EJERCICIO:
3+
* Explora el concepto de manejo de excepciones según tu lenguaje.
4+
* Fuerza un error en tu código, captura el error, imprime dicho error
5+
* y evita que el programa se detenga de manera inesperada.
6+
* Prueba a dividir "10/0" o acceder a un índice no existente
7+
* de un listado para intentar provocar un error.
8+
"""
9+
10+
try:
11+
print(10/0)
12+
print([1, 2, 3, 4][4])
13+
except Exception as e:
14+
print(f"Se ha producido un error: {e} ({type(e).__name__})")
15+
16+
17+
"""
18+
* DIFICULTAD EXTRA (opcional):
19+
* Crea una función que sea capaz de procesar parámetros, pero que también
20+
* pueda lanzar 3 tipos diferentes de excepciones (una de ellas tiene que
21+
* corresponderse con un tipo de excepción creada por nosotros de manera
22+
* personalizada, y debe ser lanzada de manera manual) en caso de error.
23+
* - Captura todas las excepciones desde el lugar donde llamas a la función.
24+
* - Imprime el tipo de error.
25+
* - Imprime si no se ha producido ningún error.
26+
* - Imprime que la ejecución ha finalizado.
27+
"""
28+
29+
30+
class StrTypeError(Exception):
31+
pass
32+
33+
34+
def process_params(parameters: list):
35+
36+
if len(parameters) < 3:
37+
raise IndexError()
38+
elif parameters[1] == 0:
39+
raise ZeroDivisionError()
40+
elif type(parameters[2]) == str:
41+
raise StrTypeError(
42+
"El tercer elemento no puede ser una cadena de texto.")
43+
44+
print(parameters[2])
45+
print(parameters[0]/parameters[1])
46+
print(parameters[2] + 5)
47+
48+
49+
try:
50+
process_params([1, 2, 3, 4])
51+
except IndexError as e:
52+
print("El número de elementos de la lista debe ser mayor que dos.")
53+
except ZeroDivisionError as e:
54+
print("El segundo elemento de la lista no puede ser un cero.")
55+
except StrTypeError as e:
56+
print(f"{e}")
57+
except Exception as e:
58+
print(f"Se ha producido un error inesperado: {e}")
59+
else:
60+
print("No se ha producido ningún error.")
61+
finally:
62+
print("El programa finaliza sin detenerse.")

0 commit comments

Comments
 (0)