可能是一个简单的问题,因为我对 python 和一般编程相当陌生,但我目前正在改进我的程序,并且无法弄清楚如果捕获到异常,如何让程序继续运行。也许我以错误的方式看待它,但例如我有一些类似的东西:
self.thread = threading.Thread(target=self.run)
self.thread.setDaemon(True)
self.thread.start()
def run(self):
logging.info("Starting Awesome Program")
try:
while 1:
awesome_program(self)
except:
logging.exception('Got exception on main handler')
OnError(self)
def OnError(self):
self.Destroy()
显然,我目前只是在遇到错误时终止程序。awesome_program 基本上是使用 pyodbc 在远程数据库上连接和运行查询。连接丢失时会出现问题。如果我没有捕捉到异常,程序就会冻结,所以我将它设置为它会杀死程序,但如果没有人手动重新启动它,这并不总是理想的。有没有一种简单的方法可以保持程序运行或重新启动它。随意责备我不正确的语法或糟糕的编程技能。我正在尝试自学,但我仍然是个新手,还有很多我不明白或可能做得不对的地方。如果需要,我可以发布更多代码。我不知道要发布多少才不会被压倒。