python 打印完整異常問題
python打印完整異常
import traceback if __name__ == "__main__": try: print(1/0) except Exception: print(traceback.format_exc())
python異常捕獲與打印
為什么要進(jìn)行異常捕獲?
在python程序中如果代碼中有異常,不進(jìn)行異常捕獲的話,代碼遇到異常就會終止運(yùn)行,影響程序的健壯性,故要進(jìn)行異常捕獲處理,使得程序遇到不可知的異常,不會終止,在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")#沒有遇到異常,可以省略 finally: ? ? ?print("finnally echo")#無論是否遇到異常都會執(zhí)行這段內(nèi)容,先執(zhí)行exception處理,后執(zhí)行finally
利用raise自己定義異常并拋出,拋出的異常必須繼承一個已有的異常類型,如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)字符串時,傳入一個字符串,那么會拋異常,repr(e)打印的是 JSONDecodeError('Extra data: line 1 column 8 (char 7)',清晰的看出來這個是json轉(zhuǎn)換出了問題
str(e) 打印問題代碼的具體問題行
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)
常見異常
IOError
文件讀寫異常,一般是文件不存在或者文件不可寫入ImportError
無法導(dǎo)入模塊或者對象,主要是路徑有誤或名稱錯誤TypeError
類型轉(zhuǎn)換異常KeyError ditc
讀取key值不對,一般是不存在這個key值
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python http接口自動化測試框架實現(xiàn)方法示例
這篇文章主要介紹了Python http接口自動化測試框架實現(xiàn)方法,結(jié)合實例形式分析了Python針對http接口測試的相關(guān)實現(xiàn)與使用操作技巧,需要的朋友可以參考下2018-12-12詳解python ThreadPoolExecutor異常捕獲
本文主要介紹了詳解python ThreadPoolExecutor異常捕獲,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01python3翻轉(zhuǎn)字符串里的單詞點的實現(xiàn)方法
這篇文章主要介紹了python3翻轉(zhuǎn)字符串里的單詞點的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04基于python SMTP實現(xiàn)自動發(fā)送郵件教程解析
這篇文章主要介紹了基于python實現(xiàn)自動發(fā)送郵件教程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06Python實現(xiàn)串口通信(pyserial)過程解析
這篇文章主要介紹了Python實現(xiàn)串口通信(pyserial)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09