[pyar] manejo de excepciones con "try"

Brian Rodriguez brianx340 en gmail.com
Jue Dic 19 11:35:50 -03 2019


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>)
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>)
> 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
>> 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
> 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
> 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/20191219/ab9004bf/attachment.html>


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