摘要:中用于處理異常棧的模塊是模塊,它提供了等輸出異常棧等常用的工具函數(shù)。其實(shí)函數(shù)只是函數(shù)的一個(gè)簡(jiǎn)寫形式,而它們獲取異常相關(guān)的數(shù)據(jù)都是通過(guò)函數(shù)得到的。即與效果是一樣的。我的博客即將搬運(yùn)同步至騰訊云社區(qū),邀請(qǐng)大家一同入駐
python中用于處理異常棧的模塊是traceback模塊,它提供了print_exception、format_exception等輸出異常棧等常用的工具函數(shù)。
應(yīng)用實(shí)例try: 1/0 except Exception,e: print e
輸出結(jié)果是
integer division or modulo by zero
只知道是報(bào)了這個(gè)錯(cuò),但是卻不知道在哪個(gè)文件哪個(gè)函數(shù)哪一行報(bào)的錯(cuò)。
使用 traceback 模塊import traceback try: 1/0 except Exception,e: traceback.print_exc()
輸出結(jié)果是
Traceback (most recent call last): File "test_traceback.py", line 3, in1/0 ZeroDivisionError: integer division or modulo by zero
這樣非常直觀有利于調(diào)試。
其實(shí)traceback.print_exc()函數(shù)只是traceback.print_exception()函數(shù)的一個(gè)簡(jiǎn)寫形式,而它們獲取異常相關(guān)的數(shù)據(jù)都是通過(guò)sys.exc_info()函數(shù)得到的。
format_exc()返回字符串,print_exc()直接給打印出來(lái)。
即traceback.print_exc()與print traceback.format_exc()效果是一樣的。
print_exc()還可以接受file參數(shù)直接寫入到一個(gè)文件。比如
traceback.print_exc(file=open("tb.txt","w+"))
寫入到tb.txt文件中。
我的博客即將搬運(yùn)同步至騰訊云+社區(qū),邀請(qǐng)大家一同入駐:https://cloud.tencent.com/dev...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41721.html
摘要:下面我們來(lái)看一下效果下次需要捕獲一個(gè)異常然后再拋出另一個(gè)異常的時(shí)候大家可以試試本文的方法。 一般實(shí)現(xiàn)捕獲異常然后再拋出另一個(gè)異常的方法類似下面這樣: def div(): 2 / 0 try: div() except ZeroDivisionError as e: raise ValueError(e) 不知道大家有沒(méi)有注意到這樣拋出異常的方式有一個(gè)很嚴(yán)重的...
摘要:值得注意的是,有的編碼方案不一定能表示某些信息,這時(shí)編碼就會(huì)失敗,比如就不能用來(lái)表示中文。數(shù)組的每一項(xiàng)是一個(gè)字節(jié),用來(lái)表示。所以對(duì)于字符串來(lái)說(shuō),其長(zhǎng)度等于編碼后字節(jié)的長(zhǎng)度。所以,讓來(lái)編碼解碼中文,就超出了其能力范圍。 在人機(jī)交互之字符編碼 一文中對(duì)字符編碼進(jìn)行了詳細(xì)的討論,并通過(guò)一些簡(jiǎn)單的小程序驗(yàn)證了我們對(duì)于字符編碼的認(rèn)識(shí)。但僅了解這篇文章的內(nèi)容,并不能幫我們?cè)谌粘>幊讨卸氵^(guò)一些字符編...
摘要:返回的信息特定于當(dāng)前線程以及當(dāng)前堆棧幀。出于某些原因,這個(gè)值可能無(wú)法計(jì)算,將返回返回安卓版本的構(gòu)建時(shí)間,以整數(shù)表示。僅適用于安卓平臺(tái)返回解釋器的檢查間隔??刹僮鞔藢傩詫?shí)現(xiàn)強(qiáng)制重新加載模塊等。 sys模塊提供對(duì)由解釋器使用或維護(hù)的某些變量、與解釋器交互的函數(shù)的訪問(wèn)接口。 sys.abiflags 在使用標(biāo)準(zhǔn)configure腳本構(gòu)建python的POSIX系統(tǒng)上,該屬性包含了PEP 31...
摘要:調(diào)試器可幫助程序員分析完整的代碼。我們將使用標(biāo)準(zhǔn)庫(kù)中的模塊調(diào)試我們的腳本。例外是程序執(zhí)行期間發(fā)生的錯(cuò)誤。設(shè)置斷點(diǎn)并檢查堆棧幀,并列出源代碼。輸入以繼續(xù)調(diào)試。分析和計(jì)時(shí)程序分析程序意味著測(cè)量程序的執(zhí)行時(shí)間。的模塊用于分析程序。 showImg(https://segmentfault.com/img/remote/1460000018807029?w=902&h=442); 來(lái)源 | ...
摘要:處理異常時(shí)發(fā)生了新的異常,在不使用時(shí)更傾向于新異常與正在處理的異常沒(méi)有關(guān)聯(lián)。而則是能指出新異常是因舊異常直接引起的。這樣的異常之間的關(guān)聯(lián)有助于后續(xù)對(duì)異常的分析和排查。若要忽略上下文,則可以通過(guò)來(lái)禁止自動(dòng)顯示異常上下文。 起步 Python 的 raise 和 raise from 之間的區(qū)別是什么? try: print(1 / 0) except Exception as e...
閱讀 1319·2021-09-27 13:56
閱讀 2351·2019-08-26 10:35
閱讀 3511·2019-08-23 15:53
閱讀 1859·2019-08-23 14:42
閱讀 1243·2019-08-23 14:33
閱讀 3572·2019-08-23 12:36
閱讀 1955·2019-08-22 18:46
閱讀 1006·2019-08-22 14:06