システムコールが中断されたために内部Webサイトに断続的な問題が発生しているところで、最近問題が発生しました。 urllib2を使用してウェブサイトにアクセスしています。私は、正確なコードを共有するが、ここでは、我々はそれを行う方法基本的にはできません。中断されたシステムコールの再試行で問題が発生しました
payload = {'userName': user_name,
'emailAddress': email_address,
'password': password}
headers = {'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': token}
values = json.dumps(payload)
req = urllib2.Request(url, values, headers)
try:
response = urllib2.urlopen(req, timeout=30)
break
except IOError, e:
if e.errno != errno.EINTR:
print e.errno
raise
我々はerronoと発生した例外を記録します。例外は次のとおりです。
IOError: <urlopen error [Errno 4] Interrupted system call>
そして、errnoはNone
です。私はそれが4となることを期待しました。
Python 2.7でこのエラーをキャッチする良い方法はありますか?私はPEP475を認識していますが、今はPython 3にアップグレードできません。
:少なくともいくつかの例をカバーすることができるもの
?ある時点で、 'socket.error'sが' IOError'のサブクラスに変更され、引数の引き渡しやその結果の属性値の大量の原因となりました。 –
私たちはPython 2.7を使用しています –
これはhttps://bugs.python.org/issue6471、または少なくとも関連するかもしれません。 –