【发布时间】:2015-02-04 07:38:45
【问题描述】:
我有下面的python代码,没有收到数据,程序退出,没有运行带有打印和返回语句的except子句
对正在发生的事情有什么想法吗?
sock.settimeout(10)
try:
pkt = sock.recv(255)
except socket.error:
print "connection timed out!"
return
【问题讨论】:
-
也许它成功了,所以
except:子句永远不会触发? (如果您希望我们进一步调试,您将需要提供 minimal, complete, verifiable example 或者,如果失败,至少需要更多信息和一些调试信息,例如如果您print pkt正确会发生什么在pkt =等之后) -
抱歉,我已经为此工作了很长时间,只是错误地假设每个人都在船上。这个 sn-p 是扫描蓝牙信号的代码的一部分。存在信号时一切正常。但如果没有信号可用,则会挂在 sock.recv(255) 上。因此,如果没有信号可用,我将上面的代码在 10 秒后超时。但它没有转到 except 子句,而是简单地退出并显示超时错误代码。