Python 3.4,socket.error已弃用,新的​​等价?

时间:2015-08-12 12:05:10

标签: 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

目的是捕获套接字连接错误,这曾经是错误的,或类似的东西。

但是我在之前的回答中看到socket.error已经从2.6开始被弃用。

我还可以确认3.4标记了一个错误,表示它不支持这种语法。

有谁请知道3.4等值?

2 个答案:

答案 0 :(得分:2)

您的问题在于语法,而不是socket.error

不推荐使用此python 2代码:

except Exception, e:

赞成

except Exception as e:

所以你想要:

except socket.error as err:

答案 1 :(得分:0)

事实上,{3}在Python 3中已被弃用。您现在可以捕获超类(OSError)。如果想要,你可以检查除了真正引发异常的哪种子类(如ECONNREFUSED)。

socket.error

请参阅:https://docs.python.org/3.6/library/exceptions.html