Advertisement
teslariu

excepcion

Feb 17th, 2022
760
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Excepciones: es un modelo de manejo de errores
  5. # para manejar una excepción, debo capturarla con un bloque
  6. # try/except
  7.  
  8. # ¿Cuando puede haber un error?
  9. # Divisón por cero, conversión equivocada int("q"), acceso en lista a
  10. # un índice inexistente, etc
  11.  
  12. """
  13. try:                  # intenta
  14.     <instruccion>     # hacer esto
  15. except <error1>:      # si me da error1
  16.     <instruccion2>    # hace esto
  17. else:                 # si no da error
  18.     <instruccion3>    # hace esto
  19. finally:              # finalmente
  20.    <instruccion4>    # hace esto, haya o no error
  21.  
  22. # ejemplo
  23. while True:
  24.     try:
  25.         numero = int(input("Ingrese un entero: "))
  26.     except ValueError:
  27.         print("Error, debe ingresar un número entero")
  28.     else:
  29.         break
  30.        
  31. print(f"Se ha ingresado el numero entero {numero}")
  32.  
  33.  
  34. # ejemplo 2: se le pide al usuario que ingrese la edad y se le responda
  35. # si es mayor o menor
  36. while True:
  37.     try:
  38.         edad = int(input("Ingrese su edad: "))
  39.    
  40.     except ValueError:
  41.         print("Error, debe ingresar un número entero")
  42.    
  43.     else:
  44.         if 0 < edad < 18:
  45.             print("Es menor de edad")
  46.             break
  47.        
  48.         elif edad >= 18:
  49.             print("Es mayor de edad")
  50.             break
  51.        
  52.         else:
  53.             print("Error, la edad debe ser un entero positivo")
  54.  
  55.  
  56. try:
  57.     a = 25/5
  58.  
  59. except ZeroDivisionError:
  60.     print("No se puede dividir por cero")
  61.    
  62. else:
  63.     print(a)
  64.    
  65. finally:
  66.     print("Cerrando conexiones")
  67.     '''
  68.     acá iria el código para cerrar archivos, conexiones de red,
  69.     conexiones con bases de datos, etc
  70.     '''
  71.     print("Hasta luego")
  72.  
  73. """
  74.  
  75. # Puede pasar que haya la posibilidad de surgir màs de un error
  76.  
  77. valor = input("Elija una letra o un numero: ")
  78.  
  79. if valor == "A":
  80.     a = [1,2,3]
  81. else:
  82.     a = valor
  83. # solucion 1: capturando con diferentes except
  84. try:
  85.     numero = int(a)
  86. except TypeError:
  87.     print("Es una lista, no un número")
  88. except ValueError:
  89.     print("No es un nro entero")
  90. else:
  91.     print(numero)
  92.    
  93. # solucion 2: capturando todo con el mismo print
  94. try:
  95.     numero = int(a)
  96. except (TypeError, ValueError):
  97.     print("Error")
  98. else:
  99.     print(numero)
  100.    
  101. # solución apta para desarrollo
  102. try:
  103.     numero = int(a)
  104. except Exception:
  105.     print("Error")
  106.  
Advertisement
RAW Paste Data Copied
Advertisement