我正在尝试学习龙卷风协同程序,但我使用下面的代码时出错。 我在网上搜索了很长时间。但没用。请帮助或尝试提供一些如何实现这一点的想法。
错误:
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 :(得分:0)
考虑如果self.get_argument("data",None)
返回None
会发生什么。然后kwargs
为None
,因此args_kwargs
不会执行raise gen.Return(kwargs)
。
因此,由于args_kwargs
不会引发gen.Return
,也不会引发异常,因此会返回None
。然后re
为None
。
答案 1 :(得分:0)
gen.Return
是一个例外,所以它被全面的except Exception, e:
子句所捕获。您需要缩小except
子句或特殊情况gen.Return
:
except gen.Return:
raise
except Exception as e:
print(e)