Python如何处理特定错误代码?
你好,我想知道怎么处理一些特定的错误代码。例如,[Errno 111] 连接被拒绝
。
我想在使用socket模块的时候,捕捉到这个特定的错误,并打印一些信息。
5 个回答
1
这看起来很难做到,而且不太稳定/可移植,但也许可以试试这样的方式:
import socket
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 4167))
except socket.error, e:
if 'Connection refused' in e:
print '*** Connection refused ***'
这样可以得到:
$ python socketexception.py
*** Connection refused ***
不过效果不是很好。
27
在Unix系统上,你可以这样做。
import socket, errno
try:
# Do something...
except socket.error as e:
if e.errno == errno.ECONNREFUSED:
# Handle the exception...
else:
raise
在Python 2.6之前,使用 e.args[ 0 ]
来代替 e.errno
。
41
如果你想获取错误代码,这个方法似乎有效;
import errno
try:
socket_connection()
except socket.error as error:
if error.errno == errno.ECONNREFUSED:
print(os.strerror(error.errno))
else:
raise
你可以查阅errno
错误代码。