[pyar] manejo de excepciones con "try"

criss pro crisspro en hotmail.com
Vie Dic 20 22:42:01 -03 2019


ahh, bien. voy entendiendo mejor.


gracias.

El 19/12/2019 a las 11:35, Brian Rodriguez escribió:
Yo lo escribiria asi...

try:
     n1 = float(input("\nIngrese el primer numero: "))
     n2 = float(input("\nIngrese el segundo numero: "))

     def divide(x,y):
          print(f"El resultado es: {x/y}")

      divide(n1,n2)

except:
    print("Error!")

Rodríguez Brian.


El mié., 18 dic. 2019 a las 23:46, criss pro (<crisspro en hotmail.com<mailto:crisspro en hotmail.com>>) escribió:

Ahh vale. ahora bien, ¡cuál es el problema en el código que puse que no captura todas las excepciones, solo la primera?, para la otra me da error igualmente.

El 18/12/2019 a las 17:35, Leandro Moreno escribió:
Buenas.

No se recomienda mucho escribir el codigo que necesitas basado en assertions. Te conviene chequear de antemano que los que vos queres se cumpla. Para el tema de parsing, te recomiendo usar la libreria argparse que viene viene con python.
https://docs.python.org/3/library/argparse.html#module-argparse

En el caso de la división por 0, lo que yo haria es chequear que el dividendo no lo sea.
if n2 == 0:
    print('No seas troll, no se puede dividir por cero')
    return

En mi opinion, no basar el flujo de una funcion en try, + except, hace el código mucho mas legible.

Espero haberte ayudado.

Regards.



Leandro Moreno
Full Stack Developer


El mié., 18 dic. 2019 a las 17:21, criss pro (<crisspro en hotmail.com<mailto:crisspro en hotmail.com>>) escribió:
Hola.


Estoy viendo la captura de excepciones, pero tengo una inquietud, ya que
en el código que dejo más abajo la cosa no va como supongo que debiese.
Ojo que si pongo la captura solo en la línea que causa el error de tipo
ZeroDivisionError funciona correctamente, no obstante quice capturar
todo el código bajo try para además atrapar errores al ingresar letras
en vez de números. Mi pregunta es si ¿es posible o adecuado poner un
único try para todo un programa y así evitar capturar excepciones trozo
a trozo, línea a línea?.


 try:
     print('primer número')
     n1= int(input())
     print('segundo número')
     n2= int(input())

     def divide (n1, n2):
         n1= n1
         n2= n2
         print('el resultado es: ', n1/n2)
except:
     print('ups. un error')
divide(n1, n2)


_______________________________________________
Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar<mailto:pyar en python.org.ar>
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar



_______________________________________________
Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar<mailto:pyar en python.org.ar>
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar

_______________________________________________
Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar<mailto:pyar en python.org.ar>
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar



_______________________________________________
Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar<mailto:pyar en python.org.ar>
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20191221/db3b63e7/attachment.html>


Más información sobre la lista de distribución pyar