2016-03-25 20 views
0

Tornado coroutines'i öğrenmeye çalışıyorum, ancak aşağıdaki kodu kullanarak hatayı yaşıyorum. Net üzerinde uzun bir süre arıyorum. Ama kullanamazsın. Lütfen bunu nasıl başaracağınıza dair fikir edinmeye veya yardımcı olmaya çalışın.Tornado zam gen.Giriş Dönüş Yok

hatası:

Traceback (most recent call last): 
    File "server.py", line 124, in args_kwargs 
    raise gen.Return(kwargs) 
enter code here 
Return 

kodu:

from tornado import gen 

class BaseHandler(tornado.web.RequestHandler): 
    @gen.coroutine 
    def args_kwargs(self,pro): 
     try: 
      kwargs = self.get_argument("data",None) 
      if kwargs: 
       raise gen.Return(kwargs) 
     except Exception,e: 
      print e 


class EventAPIHandler(BaseHandler): 
    @gen.coroutine 
    def post(self): 
     try: 
      re = yield self.args_kwargs("event") 
      if re: 
       self.write(re) 
       self.finish() 
     except Exception,e: 
      print e 

cevap

0

self.get_argument("data",None) eğer döner None ne olur düşünün. Sonra kwargs, None, args_kwargs, raise gen.Return(kwargs)'u çalıştırmaz. args_kwargs beri nedenle

, gen.Return bir istisna ne de yükseltmek değil, o None döndürür. Sonra re, None'dur.

0

gen.Return bir istisnadır, bu nedenle except Exception, e: numaralı kuralın battaniyesi tarafından yakalanmaktadır. except maddesini veya özel durumda gen.Return:

except gen.Return: 
    raise 
except Exception as e: 
    print(e) 
'u daraltmanız gerekecek