作为一名新手,我对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连接并在远程数据库上运行查询。问题出现在连接丢失时。如果我不捕获异常,程序就会冻结,所以我设置了如上所示的方式来终止程序,但如果没有人在场手动重启,这并不总是理想的。是否有一种简单的方法可以使程序保持运行或重新启动。如果我的语法不正确或者编程技能差,请随意指责我。我正在尝试自学,仍然是一个新手,有很多我不理解或可能做得不正确的事情。如果需要,我可以发布更多代码。我不确定要发布多少才不会压倒性。