gpt4 book ai didi

python - python 2.5 中的套接字错误处理与 2.7 中的不同吗?

转载 作者:太空狗 更新时间:2023-10-30 02:49:26 24 4
gpt4 key购买 nike

下面是一个代码片段,其中包含我正在运行的 python 脚本 Windows 服务的错​​误跟踪。它似乎在 windows xp 上的 python 2.7 中运行良好,但我使用的生产机器在 windows server 2003 上运行 python 2.5。我遇到的主要错误是 'error' object has no attribute 'errno'对于适用于 2.7 的 python 2.5,我是否做了一些根本错误的事情?

代码片段:

try:
if s == None:
s = self.connect()
char = s.recv(1)
line += char

except socket.timeout:
if s != None:
s.close()
s = None
continue

except socket.error, socket_error:
servicemanager.LogErrorMsg(traceback.format_exc())

if socket_error.errno == errno.ECONNREFUSED:
if s != None:
s.close()
time.sleep(60)

s =None
continue

else:
if s != None:
s.close()
os._exit(-1)

else:
pass

错误跟踪片段:

if socket_error.errno == errno.ECONNREFUSED:
AttributeError: 'error' object has no attribute 'errno'
%2: %3

最佳答案

作为explained here , 在 python 2.6 中:

Changed in version 2.6: socket.error is now a child class of IOError.

并且 IOError 的子类有一个 errno 成员。

如果你想在 python < 2.6 中获取与你的错误相关的 errno,(并假设 described here 对引发 socket.error 有效)你必须从 args 异常的属性:

except socket.error, socket_error:
if socket_error.args[0] == errno.ECONNREFUSED:

关于python - python 2.5 中的套接字错误处理与 2.7 中的不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8296411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com