嗨,我的问题是,我不明白为什么有时我不能在我的flash_serial_buffer
方法中捕捉TimeOutError
。在
当我运行我的程序时,我有时会得到一个TimeOutError
,但我不明白为什么。我指示信号处理程序的代码和未捕获TimeOutError
的方法。有人知道这可能发生吗?在
这是我的信号处理程序定义和回调函数的代码。 基本上,如果一个超时被称为处理程序,则会引发超时。在
def signal_handler(signum, frame):
print "PUM"
raise TimedOutError("Time out Error")
signal.signal(signal.SIGALRM, signal_handler)
如果没有应答,则刷新串行缓冲区将阻塞
answer = xbee.wait_read_frame()
这样做的目的是清除缓冲区中的所有内容,直到不再有消息。当没有更多的消息时,它只等待SIGALRM
爆炸并引发超时错误。在
有人能看到TimeOutError
可能被引发,但没有被{
我忘了把我的错误类定义放在这里:
class TimedOutError(Exception):
pass
更新:
我又能重复这个错误,我真的不明白为什么try
没有捕捉到错误。在
INFO:root: Flashing serial buffer
PUM
Traceback (most recent call last):
File "/home/ls/bin/pycharm-community-4.0.6/helpers/pydev/pydevd.py", line 1458, in trace_dispatch
if self._finishDebuggingSession and not self._terminationEventSent:
File "/home/ls/PiProjects/Deployeth/HW-RPI-API/devices.py", line 42, in signal_handler
raise TimedOutError("Time out Error")
TimedOutError: Time out Error
在本例中,我建议您替换try,除此代码外
Ps:你不需要在尝试中包括try(无论发生什么错误),除了stalations。
相关问题 更多 >
编程相关推荐