我想知道是否有人会有一个想法,捕捉一个正在运行的线程中的所有异常。我的程序是由以下服务启动的
def main():
global RUNNING
signal.signal(signal.SIGINT, stopHandler)
signal.signal(signal.SIGTERM, stopHandler)
projectAlice = ProjectAlice()
try:
while RUNNING:
time.sleep(0.1)
except KeyboardInterrupt:
pass
finally:
projectAlice.onStop()
_logger.info('Project Alice stopped, see you soon!')
所以一个CTRL-C或者一个信号可以阻止它。ProjectAlice永远运行,并回答由Snips发送的mqtt主题。它永远使用paho mqtt和loop\u。因为它相当大,错误可能会发生,即使它们不应该发生。我尽可能多地覆盖,但今天,作为一个例子,谷歌翻译开始抛出错误,因为它不能再使用该服务(免费…)。未处理的错误。。。。因此线程崩溃,ProjectAlice保持原样。我想,因为在Java中每个示例都有可能,超级捕获所有异常并从那里进一步工作
下面是一个覆盖python异常挂钩的简单解决方案,从而使您能够处理未捕获的异常:
在实际代码开始之前,请执行以下操作:
一个简单的
except Exception:
将捕获同一线程中除KeyboardInterrupt和SystemExit之外的所有异常。你知道吗必须在线程中运行的代码中包含
try: except ...:
块,才能捕获线程中发生的异常。你知道吗相关问题 更多 >
编程相关推荐