python異常處理之try finally不報(bào)錯(cuò)的原因
因?yàn)橛邪裵ython程序打包成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 '總共用時(shí):{}秒'.format(self.runtime) if __name__ == '__main__': try: spider = Spider() spider.run() print(spider.time) # 運(yùn)行總時(shí)間 finally: print('死掉了') time.sleep(60 * 60)
但是遇到了一個(gè)問(wèn)題
程序顯示“死掉后”并不會(huì)顯示堆棧的錯(cuò)誤信息
排查后發(fā)現(xiàn),程序打印“堆棧的錯(cuò)誤信息”并不是異步的,“堆棧的錯(cuò)誤信息”會(huì)等到finally內(nèi)的代碼塊執(zhí)行完畢后才會(huì)輸出
所以,把代碼塊改一下,
需要導(dǎo)入traceback庫(kù)來(lái)跟蹤堆棧的錯(cuò)誤信息
如下所示
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 '總共用時(shí):{}秒'.format(self.runtime) if __name__ == '__main__': try: spider = Spider() spider.run() print(spider.time) # 運(yùn)行總時(shí)間 finally: traceback.print_exc() print('死掉了') time.sleep(60 * 60)
這種打印方式是異步的,不知道是多線程還是協(xié)程還是啥
更多追蹤堆棧錯(cuò)誤信息的,可以看這篇文章
Python捕獲異常堆棧信息的幾種方法
到此這篇關(guān)于python異常處理之try finally不報(bào)錯(cuò)的原因的文章就介紹到這了,更多相關(guān)python try finally不報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python處理時(shí)間日期坐標(biāo)軸過(guò)程詳解
這篇文章主要介紹了Python處理時(shí)間日期坐標(biāo)軸過(guò)程詳解,當(dāng)日期數(shù)據(jù)作為圖表的坐標(biāo)軸時(shí)通常需要特殊處理,應(yīng)為日期字符串比較長(zhǎng),容易產(chǎn)生重疊現(xiàn)象,需要的朋友可以參考下2019-06-06python如何實(shí)現(xiàn)一個(gè)刷網(wǎng)頁(yè)小程序
這篇文章主要給大家介紹了關(guān)于利用python如何實(shí)現(xiàn)一個(gè)刷網(wǎng)頁(yè)小程序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11基于Python的XSS測(cè)試工具XSStrike使用方法
XSS(Cross Site Scripting,跨站腳本攻擊)是一類(lèi)特殊的Web客戶端腳本注入攻擊手段,通常指攻擊者通過(guò)“HTML注入”篡改了網(wǎng)頁(yè),插入惡意的腳本,從而在用戶瀏覽網(wǎng)頁(yè)時(shí)控制瀏覽器的一種攻擊。2017-07-07python 實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)到txt和pdf文檔及亂碼問(wèn)題的解決
這篇文章主要介紹了python 實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)到txt和pdf文檔及亂碼問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03python+Tesseract OCR實(shí)現(xiàn)截屏識(shí)別文字
pytesseract Python常用pytesseract進(jìn)行圖片上的文字識(shí)別,本文主要介紹了python+Tesseract?OCR實(shí)現(xiàn)截屏識(shí)別文字,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11Python機(jī)器學(xué)習(xí)之手寫(xiě)KNN算法預(yù)測(cè)城市空氣質(zhì)量
KNN(K-Nearest Neighbor)最鄰近分類(lèi)算法是數(shù)據(jù)挖掘分類(lèi)(classification)技術(shù)中常用算法之一,本文將介紹如何通過(guò)KNN算法實(shí)現(xiàn)城市空氣質(zhì)量的預(yù)測(cè),感興趣的同學(xué)可以了解一下2021-12-12Python中Pygame模塊的詳細(xì)安裝過(guò)程
pygame安裝是為了開(kāi)發(fā)小游戲,在下新手在經(jīng)過(guò)許多嘗試后,為大家避雷,給大家分享一個(gè)簡(jiǎn)單有效的方法,下面這篇文章主要給大家介紹了關(guān)于Python中Pygame的詳細(xì)安裝過(guò)程的相關(guān)資料,需要的朋友可以參考下2022-09-09使用Python實(shí)現(xiàn)更改Word文檔的頁(yè)面大小
頁(yè)面大小確定文檔中每個(gè)頁(yè)面的尺寸和布局,有時(shí)我們會(huì)需要自定義頁(yè)面大小以滿足特定要求,下面我們就來(lái)看看如何使用Python實(shí)現(xiàn)這一效果吧2024-03-03