Skip to content

Commit dbb8368

Browse files
authored
Merge pull request #8966 from barrancus/patch-1
#10 - barrancus
2 parents 5d2da70 + 36e502f commit dbb8368

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
"#[número] - [lenguaje_utilizado]"
2+
#
3+
# EJERCICIO:
4+
# Explora el concepto de manejo de excepciones según tu lenguaje.
5+
# Fuerza un error en tu código, captura el error, imprime dicho error
6+
# y evita que el programa se detenga de manera inesperada.
7+
# Prueba a dividir "10/0" o acceder a un índice no existente
8+
# de un listado para intentar provocar un error.
9+
#
10+
# DIFICULTAD EXTRA (opcional):
11+
# Crea una función que sea capaz de procesar parámetros, pero que también
12+
# pueda lanzar 3 tipos diferentes de excepciones (una de ellas tiene que
13+
# corresponderse con un tipo de excepción creada por nosotros de manera
14+
# personalizada, y debe ser lanzada de manera manual) en caso de error.
15+
# - Captura todas las excepciones desde el lugar donde llamas a la función.
16+
# - Imprime el tipo de error.
17+
# - Imprime si no se ha producido ningún error.
18+
# - Imprime que la ejecución ha finalizado.
19+
#
20+
def serparacion(cadena):
21+
print('{}'.format(cadena * 20))
22+
23+
for i in range(5,-6,-1):
24+
try:
25+
result = 25/i
26+
print(f'25 / {i} = {25/i}')
27+
except ZeroDivisionError:
28+
print(f'No es posible la división ya que no se puede dividir entre {i}')
29+
30+
31+
serparacion('-*-')
32+
listNumberToPass = [
33+
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
34+
]
35+
36+
for i in range(13):
37+
try:
38+
print(listNumberToPass[i])
39+
except IndexError:
40+
print(f'No hay valor en la posición {i} de la lista. {listNumberToPass}')
41+
42+
serparacion('-#-')
43+
listNumberToPassb = [
44+
0, 2, 6, "A",
45+
]
46+
class MyOwnError(Exception):
47+
pass
48+
49+
def parameter_process(arguments):
50+
from random import randint
51+
numa = randint(0,7)
52+
numb = randint(0,7)
53+
if numa == 7:
54+
raise MyOwnError
55+
return f'{arguments[numa]} / {arguments[numb]} = {arguments[numa] / arguments[numb]}'
56+
57+
for i in range(20):
58+
try:
59+
print(parameter_process(listNumberToPassb))
60+
except MyOwnError as excep:
61+
print(f'Se ha producido el error: {MyOwnError}: {excep}')
62+
except IndexError as excep:
63+
print(f'Se ha producido el error: {IndexError}: {excep}')
64+
except ZeroDivisionError as excep:
65+
print(f'Se ha producido el error: {ZeroDivisionError}: {excep}')
66+
except Exception as excep:
67+
print(f'Se ha producido el error: {Exception}: {excep}')
68+
else:
69+
print('No ha habido errores.')
70+
finally:
71+
print("Se ha terminado la ejecución")
72+
serparacion('-:-')

0 commit comments

Comments
 (0)