HEJ,suds.client產生503錯誤 - >如何抓住它
我寫的腳本訪問肥皂資源(http://chemspell.nlm.nih.gov/axis/SpellAid.jws?wsdl)這有時會給出一個503 HTTP狀態(在幾千個查詢之後...)
suds.client模塊然後崩潰與一個非特定的異常,我能夠通過嘗試除了語句,但我無法測試對於實際的503 http狀態這個例外。
所以捕捉這個問題的代碼看起來是這樣的現在:
for i in range(9):
try:
result = client.service.getSugList(query, 'All databases')
success = True
break
except urllib2.URLError, e:
pass
except Exception, e:
if e[0] == 503:
print "e[0] == 503"
if 503 in e:
print "503 in e"
if e is (503, u'Service Temporarily Unavailable'):
print "e is (503, u'Service Temporarily Unavailable')"
if e == (503, u'Service Temporarily Unavailable'):
print "e == (503, u'Service Temporarily Unavailable')"
raise ChemSpellException, \
"Uncaught exception raised by suds.client: %s" % e
if success is False:
raise ChemSpellException, \
"Got too many timeouts or 503 errors from ChemSpell web service."
導致下面的輸出:
No handlers could be found for logger "suds.client"
Traceback (most recent call last):
File "./scripts/chembl_chemspell_synonyms.py", line 49, in <module>
synonyms_unique = chemspell.get_synonyms_list(value)
File "/net/netfile2/ag-russell/bq_ppucholt/hd-analytics/PyHDA/sources/chemspell.py", line 82, in get_synonyms_list
chemspell_syns = get_synonyms(syn)
File "/net/netfile2/ag-russell/bq_ppucholt/hd-analytics/PyHDA/sources/chemspell.py", line 45, in get_synonyms
"Uncaught exception raised by suds.client: %s" % e
PyHDA.sources.chemspell.ChemSpellException: Uncaught exception raised by suds.client: (503, u'Service Temporarily Unavailable')
所以沒有我,如果條款是能夠檢測到異常我不知道下一步該怎麼嘗試才能專門捕捉它。很難提供一個定期失敗的最小示例,因爲它依賴於服務器端,並且此腳本每天一次地繼續運行。我可以提供更多信息嗎?你有任何想法,如果條款測試?
乾杯, 帕斯卡爾
'503!=「503」'in Python – jfs
你是否修復了這個問題? – fledgling