|
| 1 | +# 10 |
| 2 | + |
| 3 | +# Manejo basico de excepciones |
| 4 | +try: |
| 5 | + x = 10 / 0 |
| 6 | +except ZeroDivisionError: |
| 7 | + print("No se puede dividir por cero.") |
| 8 | + |
| 9 | +# Capturar cualquier tipo de error |
| 10 | +try: |
| 11 | + num = int(input("Ingresa un número: ")) |
| 12 | +except Exception as e: |
| 13 | + print("Hubo un error:", e) |
| 14 | + |
| 15 | +# Manejo con else |
| 16 | +try: |
| 17 | + x = 10 / 2 |
| 18 | +except ZeroDivisionError: |
| 19 | + print("Error") |
| 20 | +else: # solo se ejecuto si no hubo error |
| 21 | + print("Todo salió bien, x es:", x) |
| 22 | + |
| 23 | +# Manejo con finally |
| 24 | +try: |
| 25 | + archivo = open("test.txt") |
| 26 | +except FileNotFoundError: |
| 27 | + print("Archivo no encontrado") |
| 28 | +finally: # Siempre se ejecuta, haya error o no |
| 29 | + print("Intento de abrir archivo finalizado.") |
| 30 | + |
| 31 | + |
| 32 | +"""* Crea una función que sea capaz de procesar parámetros, pero que también |
| 33 | + * pueda lanzar 3 tipos diferentes de excepciones (una de ellas tiene que |
| 34 | + * corresponderse con un tipo de excepción creada por nosotros de manera |
| 35 | + * personalizada, y debe ser lanzada de manera manual) en caso de error. |
| 36 | + * - Captura todas las excepciones desde el lugar donde llamas a la función. |
| 37 | + * - Imprime el tipo de error. |
| 38 | + * - Imprime si no se ha producido ningún error. |
| 39 | + * - Imprime que la ejecución ha finalizado.""" |
| 40 | + |
| 41 | +class MiPrimerError(Exception): |
| 42 | + pass # Excepcion creada por mi para mostrar que el saldo es insuficiente |
| 43 | + |
| 44 | +saldo_en_la_cuenta = 100 |
| 45 | + |
| 46 | +def saldo_insuficiente(saldo): |
| 47 | + # 1 error saldo negativo |
| 48 | + if saldo < 0: |
| 49 | + raise ValueError("El saldo no puede ser negativo") |
| 50 | + |
| 51 | + # 2 error saldo no es un numero |
| 52 | + if not isinstance(saldo, (int, float)): |
| 53 | + raise TypeError("El saldo debe ser un numero") |
| 54 | + |
| 55 | + # 3 error saldo insuficiente |
| 56 | + if saldo > saldo_en_la_cuenta: |
| 57 | + raise MiPrimerError("El saldo supera al valor de la cuenta") |
| 58 | + |
| 59 | + return saldo + saldo_en_la_cuenta |
| 60 | + |
| 61 | +try: |
| 62 | + cuenta = saldo_insuficiente(150) |
| 63 | + print("Nuevo saldo en cuenta: ", cuenta) |
| 64 | +except Exception as e: |
| 65 | + print("Se produjo un error de tipo:", type(e).__name__) |
| 66 | + print("Mensaje del error:", e) |
| 67 | +else: |
| 68 | + print("No se produjo ningun error") |
| 69 | +finally: |
| 70 | + print("La ejecucion a finalizado") |
0 commit comments