龙卷风升起gen.Return返回无

时间:2016-03-25 09:00:52

标签: python tornado

我正在尝试学习龙卷风协同程序,但我使用下面的代码时出错。 我在网上搜索了很长时间。但没用。请帮助或尝试提供一些如何实现这一点的想法。

错误:

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

2 个答案:

答案 0 :(得分:0)

考虑如果self.get_argument("data",None)返回None会发生什么。然后kwargsNone,因此args_kwargs不会执行raise gen.Return(kwargs)

因此,由于args_kwargs不会引发gen.Return,也不会引发异常,因此会返回None。然后reNone

答案 1 :(得分:0)

gen.Return是一个例外,所以它被全面的except Exception, e:子句所捕获。您需要缩小except子句或特殊情况gen.Return

except gen.Return:
    raise
except Exception as e:
    print(e)