[pyar] Que exceptions tiene una función

Luis Masuelli luismasuelli en hotmail.com
Vie Ago 15 10:42:55 ART 2014


No se puede.

Como harias para anticipar en QuerySet.get qué subtipo de ObjectDoesNotExist será devuelto? lo que tirará será algo como: self._model.DoesNotExist (o self._model.MultipleObjectsReturned) pero ese _model puede ser una entre muchas cosas cosas, irreconocibles y potencialmente infinitas.
Date: Fri, 15 Aug 2014 10:16:25 -0300
From: ralsina en netmanagers.com.ar
To: pyar en python.org.ar
Subject: Re: [pyar] Que exceptions tiene una función


  
    
  
  
    On 15/08/14 10:00, Sebastián Seba
      wrote:

    
    
      
        
          El 14 de agosto de 2014, 21:34,
            Manuel Kaufmann <humitos en gmail.com>
            escribió:

            2014-08-14 17:49
              GMT-03:00 Hernan Grecco <hernan.grecco en gmail.com>:

              > Alguien tiene alguna función (tal vez
                la gente de Ninja?) que devuelva

                > el conjunto de que exception posibles que pueden
                surgir al llamar a

                > otra función (obviamente recorriendo todas las
                llamadas)?

                

                

              
              Así así... A simple vista, me parece que no es algo
              posible de hacer.

              

              ¿Porqué? No sabría explicarlo. Quizás no lo tengo tan
              claro tampoco.

              Pero pienso en "¿cómo haría Python para saberlo?" y creo
              que debería

              evaluar todos los tipos de datos que hay en esa función y
              preguntarle

              a cada uno de ellos cuáles son todas las exepciones que
              pueden

              levantar. Eso, hacerlo recursivo para todas y cada una de
              las llamadas

              a función que hay en esa misma función... O sea, "para
              mi", no se

              puede.

              

            
          
          

        
        Creo que una vez leí una pregunta
          similar en StackOverflow y sugerían utilizar los módulos "ast"
          [0] y "parser" [1]

          

          [0] https://docs.python.org/3.4/library/ast.html

          [1] https://docs.python.org/3.4/library/parser.html
        
        

      
    
    

    Con eso vas a poder ver cuales excepciones tira explicitamente una
    funcion, pero no hay manera de saber cual va a tirar en general.

    

    Ejemplo de juguete:

    

    Decime con análisis estático que excepciones puede tirar esta línea:

    

"b".__class__.__dict__[list("a".__class__.__dict__.keys())[random.randint(0,30)]]("g")

  


_______________________________________________
pyar mailing list pyar en python.org.ar
http://listas.python.org.ar/listinfo/pyar

PyAr - Python Argentina - Sitio web: http://www.python.org.ar/

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/20140815/7bb752a6/attachment-0001.html>


More information about the pyar mailing list