|
| 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