try...except...finally...
,不同類型的錯誤由不同的except
語句塊處理,如果沒有錯誤發生,可以在except
語句塊后面加一個else
,沒有錯誤發生時,執行else
語句,finally
語句如果有,一定會被執行(可以沒有finally
語句)。
記錄錯誤,logging.exception(e)
,程序打印完錯誤信息后會繼續執行。
拋出錯誤,我們可以自定義錯誤的class
,選擇好繼承關系。用raise
語句拋出一個錯誤的實例。raise
語句如果不帶參數,會把當前錯誤原樣拋出,讓頂層調用者處理。
print()
,打印有可能出問題的變量。
斷言assert
,如果斷言失敗,assert
語句會拋出AssertionError
。python -o file.py
關閉斷言。
logging
,允許指定記錄信息的級別,有debug
、info
、warning
、error
等幾個級別。通過配置,一條語句可以輸出到不同地方,如console和文件。
調試器pdb,python -m pdb file.py
,命令l
可以查看代碼,命令n
可以單步執行代碼,任何時候可以出入命令p 變量名
來查看變量,命令q
結束調試。
pdb.set_trace()
,在可能出錯的地方放一個set_trace
,可以設置一個斷點,程序會在pdb.set_trace()
暫停并進入調試環境,命令p
查看變量,命令c
繼續運行。
支持調試功能的IDE,如PyCharm,Eclipse+pydev插件。
新聞熱點
疑難解答