0
我正在用Twisted Klein开发一个异步Web服务。有部分的代码如下:如何避免python中的yield命令每次都会抛出异常?
@inlineCallbacks
def test(input1):
try:
result = yield function(input1)
print result
returnValue(result)
except:
returnValue("None")
pass
我有这个test
功能我的web服务的一部分,每次我打电话从其他功能返回“无” test
功能。但是,在服务器屏幕上,它会打印出我想要的正确结果(尝试中的print result
行正确执行,而不使用returnValue(result)
)。我对异步编码不是很熟悉,但是除了yield之外,还有什么我应该小心尝试吗?谢谢。
?您应该捕获您期望的特定异常类型。我对Twisted Klein了解不多,但Google的一个快速搜索表明他们[使用例外来模拟协程](http://tavendo.com/blog/post/going-asynchronous-from-flask-to-twisted -klein /),所以一个光秃秃的'except'会很难完成。 – user2357112
所以我从瓶子代码修改了这个,并且我调用了一个可能会抛出异常的API,我不希望它崩溃,所以我使用try /除非这样做。也许我应该删除那裸露的除外,看看它是如何工作的? – JLTChiu
除了裸露之外,它实际上起作用了。我想我需要从api中指定所有可能的异常。我希望标签为正确的答案,但你在评论中 – JLTChiu