我有一些像这样的代码:
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
这里有什么好处?
PS。我无法轻松地向pre-prod环境发布代码更新以添加更多日志......
[edit]在Python 3.4.2上运行