日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

python?打印完整異常問(wèn)題_python

作者:雪風(fēng)飛舞 ? 更新時(shí)間: 2022-12-12 編程語(yǔ)言

python打印完整異常

import traceback
if __name__ == "__main__":
    try:
        print(1/0)
    except Exception:
        print(traceback.format_exc())

python異常捕獲與打印

為什么要進(jìn)行異常捕獲?

在python程序中如果代碼中有異常,不進(jìn)行異常捕獲的話,代碼遇到異常就會(huì)終止運(yùn)行,影響程序的健壯性,故要進(jìn)行異常捕獲處理,使得程序遇到不可知的異常,不會(huì)終止,在exception代碼塊中進(jìn)行異常處理后繼續(xù)后面的代碼執(zhí)行。

異常捕獲是捕獲什么?

* 異常類型
* 異常追蹤信息
* ?異常內(nèi)容

異常捕獲的代碼格式?

try:
? ? {content code}
except Exception as e:
? ? print("substitude exception,type={},content={}".format(repr(e),e))#y
else:
? ? print("code exec correct")#沒(méi)有遇到異常,可以省略
finally:
? ? ?print("finnally echo")#無(wú)論是否遇到異常都會(huì)執(zhí)行這段內(nèi)容,先執(zhí)行exception處理,后執(zhí)行finally

利用raise自己定義異常并拋出,拋出的異常必須繼承一個(gè)已有的異常類型,如TypeError(“param must be dict”)

def func3(p):
? ? if type(p)!= dict:
? ? ? ? raise TypeError("param must be dict")
? ? else:
? ? ? ? print(p)
if __name__ == '__main__':
?try:
? ? func3("123")
?except Exception as e:
? ? print("exception,type={},content={}".format(repr(e),e))
?finally:
? ? ?print("finnally echo")
? ? --------------------
? ? 打印結(jié)果
? ? exception,type=TypeError('param must be dict'),content=param must be dict
finnally echo

打印異常

代碼舉例:

try:
? ? str2json = json.loads(str)
? ? return jsonpath.jsonpath(str2json,expr)
except Exception as e:
? ? cls.logger.info('collectjson exception = {}'.format(str(e)))

repr(e) 打印異常的類型 ,如在json轉(zhuǎn)字符串時(shí),傳入一個(gè)字符串,那么會(huì)拋異常,repr(e)打印的是 JSONDecodeError('Extra data: line 1 column 8 (char 7)',清晰的看出來(lái)這個(gè)是json轉(zhuǎn)換出了問(wèn)題

str(e) 打印問(wèn)題代碼的具體問(wèn)題行

Traceback (most recent call last):
? File "D:/python-workspace/iaminterfaceTest/jsonUtil.py", line 14, in collectjson
? ? str2json = json.loads(str)
? File "D:\python37\Lib\json\__init__.py", line 348, in loads
? ? return _default_decoder.decode(s)
? File "D:\python37\Lib\json\decoder.py", line 340, in decode
? ? raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 8 (char 7)

常見(jiàn)異常

  • IOError 文件讀寫(xiě)異常,一般是文件不存在或者文件不可寫(xiě)入
  • ImportError 無(wú)法導(dǎo)入模塊或者對(duì)象,主要是路徑有誤或名稱錯(cuò)誤
  • TypeError 類型轉(zhuǎn)換異常
  • KeyError ditc讀取key值不對(duì),一般是不存在這個(gè)key值

原文鏈接:https://blog.csdn.net/weixin_45592677/article/details/121354794

欄目分類
最近更新