python中尝试最后不报错怎么办

  介绍

这篇文章主要讲解了python中尝试最后不报错怎么办,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

因为有把python程序打包成exe的需求,所以,有了如下的代码

进口时间
  
  类LoopOver(异常):
  def __init__(自我,* args, * * kwargs):
  通过
  
  蜘蛛类:
  def __init__(自我):
  super () . __init__ ()
  
  def运行(自我):
  提高LoopOver
  
  @ property
  def时间(自我):
  返回& # 39;总共用时:{}秒& # 39;.format (self.runtime)
  
  
  if __name__==& # 39; __main__ # 39;:
  试一试:
  蜘蛛=蜘蛛()
  spider.run ()
  打印(spider.time) #运行总时间
  最后:
  打印(& # 39;死掉了& # 39;)
  时间。睡眠(60 * 60)

但是遇到了一个问题

程序显示“死掉后”并不会显示堆栈的错误信息

皃ython中尝试终于不报错怎么办"

排查后发现,程序打印“堆栈的错误信息”并不是异步的,“堆栈的错误信息”会等到最后内的代码块执行完毕后才会输出

所以,把代码块改一下,
需要导入回溯库来跟踪堆栈的错误信息
如下所示

进口时间
  进口回溯
  
  
  类LoopOver(异常):
  def __init__(自我,* args, * * kwargs):
  通过
  
  
  蜘蛛类:
  def __init__(自我):
  super () . __init__ ()
  
  def运行(自我):
  提高LoopOver
  
  @ property
  def时间(自我):
  返回& # 39;总共用时:{}秒& # 39;.format (self.runtime)
  
  
  if __name__==& # 39; __main__ # 39;:
  试一试:
  蜘蛛=蜘蛛()
  spider.run ()
  打印(spider.time) #运行总时间
  最后:
  traceback.print_exc ()
  打印(& # 39;死掉了& # 39;)
  时间。睡眠(60 * 60)

这种打印方式是异步的,不知道是多线程还是协程还是啥

皃ython中尝试终于不报错怎么办"

看完上述内容,是不是对python中尝试最后不报错怎么办有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。

python中尝试最后不报错怎么办