抓住"socket.error:[Errno 111]连接拒绝"异常

URL*_*L87 42 python sockets

我怎么能抓住socket.error: [Errno 111] Connection refused异常?

try:
    senderSocket.send("Hello")
except ?????:
    print "catch !"     
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 80

通过捕获所有 socket.error异常,并在errno属性不等于111时重新提升它.或者,更好的是,使用errno.ECONNREFUSED常量代替:

import errno
from socket import error as socket_error

try:
    senderSocket.send('Hello')
except socket_error as serr:
    if serr.errno != errno.ECONNREFUSED:
        # Not the error we are looking for, re-raise
        raise serr
    # connection refused
    # handle here
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,如果使用Python 3.3,它现在具有`ConnectionRefusedError`并且不推荐使用`socket.error`. (5认同)