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插件。
新聞熱點
疑難解答