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