亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中try finally不報錯怎么辦

發布時間:2020-07-23 15:31:20 來源:億速云 閱讀:165 作者:小豬 欄目:開發技術

這篇文章主要講解了python中try finally不報錯怎么辦,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

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

import time

class LoopOver(Exception):
  def __init__(self, *args, **kwargs):
    pass

class Spider:
  def __init__(self):
    super().__init__()

  def run(self):
    raise LoopOver

  @property
  def time(self):
    return '總共用時:{}秒'.format(self.runtime)


if __name__ == '__main__':
  try:
    spider = Spider()
    spider.run()
    print(spider.time) # 運行總時間
  finally:
    print('死掉了')
    time.sleep(60 * 60)

但是遇到了一個問題

程序顯示“死掉后”并不會顯示堆棧的錯誤信息

python中try finally不報錯怎么辦

排查后發現,程序打印“堆棧的錯誤信息”并不是異步的,“堆棧的錯誤信息”會等到finally內的代碼塊執行完畢后才會輸出

所以,把代碼塊改一下,
需要導入traceback庫來跟蹤堆棧的錯誤信息
如下所示

import time
import traceback


class LoopOver(Exception):
  def __init__(self, *args, **kwargs):
    pass


class Spider:
  def __init__(self):
    super().__init__()

  def run(self):
    raise LoopOver

  @property
  def time(self):
    return '總共用時:{}秒'.format(self.runtime)


if __name__ == '__main__':
  try:
    spider = Spider()
    spider.run()
    print(spider.time) # 運行總時間
  finally:
    traceback.print_exc()
    print('死掉了')
    time.sleep(60 * 60)

這種打印方式是異步的,不知道是多線程還是協程還是啥

python中try finally不報錯怎么辦

看完上述內容,是不是對python中try finally不報錯怎么辦有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三门县| 壶关县| 开阳县| 格尔木市| 夏津县| 马关县| 巴马| 盈江县| 梅州市| 江永县| 宁远县| 兰溪市| 阜新| 柘荣县| 阿图什市| 毕节市| 铜陵市| 江达县| 稷山县| 邯郸县| 宜春市| 五指山市| 乐山市| 阿鲁科尔沁旗| 文登市| 阜城县| 田东县| 衡水市| 上杭县| 遂昌县| 玉山县| 建湖县| 怀远县| 锡林浩特市| 年辖:市辖区| 鱼台县| 名山县| 玉林市| 电白县| 高安市| 新竹市|