Python 套接字超时被捕获为操作错误
我有一些这样的代码:Python 套接字超时被捕获为操作错误,python,sockets,ping,Python,Sockets,Ping,我有一些这样的代码: try: socket.create_connection((fqdn, 80), timeout=TIMEOUT).close() except socket.timeout as e: print('Error timeout: %s' % e) except OSError as e: print('Error other: %s' % e) 在本地计算机上运行时,如果设置会生成超时,我会将预期的输出Error timeout:timed o
try:
socket.create_connection((fqdn, 80), timeout=TIMEOUT).close()
except socket.timeout as e:
print('Error timeout: %s' % e)
except OSError as e:
print('Error other: %s' % e)
在本地计算机上运行时,如果设置会生成超时,我会将预期的输出Error timeout:timed out
发送到控制台
当在我们的pre-prod环境中运行相同的代码时,输出为Error other:timed out
,这意味着抛出的错误不是socket.timeout
,而是消息timed out
这里发生了什么
顺便说一句,我不能轻易地将代码更新发布到pre-prod环境以添加更多日志
[编辑]在Python 3.4.2上运行,如果有一个实际的异常堆栈回溯,将非常有用。这是哪个版本的python?python 3.4.2。是的,很遗憾我没有。下面是一个stacktrace示例:
文件/usr/lib/python3.7/socket.py”,第727行,在create_connection raiser err File/usr/lib/python3.7/socket.py中,在create_connection sock.connect(sa)OSError:[Errno 113]没有到主机的路由,
James,上面的例子是Python3.7.3,如果有一个实际的异常堆栈回溯,将非常有用。这是哪个版本的python?python 3.4.2。是的,很遗憾我没有。下面是一个stacktrace示例:文件/usr/lib/python3.7/socket.py”,第727行,在create_connection raiser err File/usr/lib/python3.7/socket.py中,在create_connection sock.connect(sa)OSError:[Errno 113]没有到主机的路由,
James,上面的示例是使用Python 3.7.3的