錯誤、除錯和測試
當我們認為某些**可能會出錯時,就可以用try來執行這段**,如果執行出錯,則後續**不會繼續執行,而是直接跳轉至錯誤處理**,即except語句塊,執行完except後,如果有finally語句塊,則執行finally語句塊,至此,執行完畢。
出錯的時候,一定要分析錯誤的呼叫棧資訊,才能定位錯誤的位置。
try:
print('try...')
r = 10 / int('a')
print('result:', r)
except valueerror as e:
print('valueerror:', e)
except zerodivisionerror as e:
print('zerodivisionerror:', e)
finally:
print('finally...')
print('end')
常見的錯誤型別和繼承關係:
丟擲錯誤
如果要丟擲錯誤,首先根據需要,可以定義乙個錯誤的class,選擇好繼承關係,然後,用raise語句丟擲乙個錯誤的例項
raise語句如果不帶引數,就會把當前錯誤原樣丟擲。此外,在except中raise乙個error,還可以把一種型別的錯誤轉化成另一種型別
除錯:1.使用print列印錯誤資訊
2.使用assert來替代print()
3.logging指定記錄資訊的級別,有debug,info,warning,error等幾個級別
4.pdb單步執行:python -m pdb err.py
5.pdb.set_trace():這個方法也是用pdb,但是不需要單步執行,我們只需要import pdb,然後,在可能出錯的地方放乙個pdb.set_trace(),就可以設定乙個斷點
6.使用ide
如果要比較爽地設定斷點、單步執行,就需要乙個支援除錯功能的ide。目前比較好的python ide有:
visual studio code:需要安裝python外掛程式。
pycharm:
另外,eclipse加上pydev外掛程式也可以除錯python程式。
單元測試:用來對乙個模組、乙個函式或者乙個類來進行正確性檢驗的測試工作。
setup()方法中連線資料庫,在teardown()方法中關閉資料庫
python內建的「文件測試」(doctest)模組可以直接提取注釋中的**並執行測試
doctest非常有用,不但可以用來測試,還可以直接作為示例**。通過某些文件生成工具,就可以自動把包含doctest的注釋提取出來。使用者看文件的時候,同時也看到了doctest。
python錯誤 除錯和測試
1.錯誤處理 1 try.except.finally try print try.r 10 int a print result r except valueerror as e print valueerror e except zerodivisionerror as e print zero...
python之錯誤 除錯和測試
try print try.r 10 0 print result r except zerodivisionerror,e print except e finally print finally.print end 如果不捕獲錯誤,自然可以讓python的直譯器來列印出錯誤堆疊,但程式也同時結束...
錯誤 除錯和測試
在程式執行過程中,總會遇到各種各樣的錯誤。有的錯誤是程式編寫有問題造成的,比如本來應該輸出整數結果輸出了字串,這種錯誤我們通常稱之為bug,bug是必須修復的。有的錯誤是使用者輸入造成的,比如讓使用者輸入email位址,結果得到乙個空字串,這種錯誤可以通過檢查使用者輸入來做相應的處理。還有一類錯誤是...