等效于python3中的“ socket.error为(代码,味精)除外”

时间:2019-01-04 21:40:58

标签: python python-3.x python-2.x try-except

由于行except socket.error as (code, msg),我在python2中有一个try-except块无法在python3中运行

try:
    (conn, (ip,port)) = tcpServer.accept()
except socket.error as (code, msg):
    if code != errno.EINTR:
        raise
    else:
        break

python3中的等效项是什么?有没有一种方法可以在两个python版本中使用?

1 个答案:

答案 0 :(得分:2)

根据PEP删除了旧的异常PEP 3151,这种方法应该有效:

try:
    (conn, (ip,port)) = tcpServer.accept()
except socket.error as e:
    if e.errno != errno.EINTR:
        raise
    else:
        break

请注意,在Python> 3.3中,socket.errorOSError的别名。