2016-03-25 30 views
0

私はトルネードコルーチンを勉強しようとしていますが、私は以下のコードを使ってエラーがあります。 私はネット上で長い時間を探しています。しかし、使用しないでください。これを達成する方法を教えてください。竜巻raise gen.Return Returnなし

エラー:

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

コード:

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 

答えて

0

self.get_argument("data",None)あればリターンNoneを何が起こるかを考えてみましょう。次にkwargsNoneなのでargs_kwargsraise gen.Return(kwargs)を実行しません。

したがって、も発生しないため、Noneを返します。次にreNoneです。

0

gen.Returnは例外であるため、ブランケットexcept Exception, e:節で遭遇しています。 except句または特殊なケースを狭める必要がありますgen.Return

except gen.Return: 
    raise 
except Exception as e: 
    print(e) 
関連する問題