Sav*_*ool 5 sockets python-3.x
最初,代码是这样写的:
except socket.error, err:
print('Socket connection error... Waiting 10 seconds to retry.')
del self.sock
time.sleep(10)
try_count += 1
Run Code Online (Sandbox Code Playgroud)
目的是捕获套接字连接错误,该错误过去曾是错误或类似的错误。
但是,我在以前的回答中看到socket.error从2.6开始不推荐使用。
我还可以确认3.4标记了一个错误,指出它不支持此语法。
是否有人知道3.4的等价物?
Indeedsocket.error在 Python 3 中已弃用。您现在可以捕获超类 (OSError)。如果需要,您可以在 except 中检查真正引发了哪种类型的异常子类(例如 ECONNREFUSED)。
try:
...
except OSError as e:
...
Run Code Online (Sandbox Code Playgroud)
请参阅: https: //docs.python.org/3/library/exceptions.html
您的问题在于语法,而不是socket.error:
此 python 2 代码已弃用:
except Exception, e:
Run Code Online (Sandbox Code Playgroud)
有利于
except Exception as e:
Run Code Online (Sandbox Code Playgroud)
所以你要:
except socket.error as err:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6286 次 |
| 最近记录: |