python錯誤 除錯和測試

2022-08-19 02:03:10 字數 1927 閱讀 8481

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('

zerodivisionerror:

', e)

finally

:

print('

finally...')

print('

end')

2)出錯的時候,一定要分析錯誤的呼叫棧資訊,才能定位錯誤的位置。

3)python內建的logging模組可以非常容易地記錄錯誤資訊

4)raise丟擲錯誤例項

#

err_raise.py

class

fooerror(valueerror):

pass

deffoo(s):

n =int(s)

if n==0:

raise fooerror('

invalid value: %s

' %s)

return 10 /n

foo('0

')

2.除錯

1)print

2)assert

3)logging

和assert相比,不會丟擲錯誤,且可以輸出到檔案

import

logging

s = '0'

n =int(s)

logging.info(

'n = %d

' %n)

print(10 / n)

import

logging

logging.basicconfig(level=logging.info)

這就是logging的好處,它允許你指定記錄資訊的級別,有debuginfowarningerror等幾個級別,當我們指定level=info時,logging.debug就不起作用了。同理,指定level=warning後,debuginfo就不起作用了。

4)pdb

讓程式以單步方式執行,隨時檢視執行狀態

5)pdb.set_trace()

這個方法也是用pdb,但是不需要單步執行,我們只需要import pdb,然後,在可能出錯的地方放乙個pdb.set_trace(),就可以設定乙個斷點

#

err.py

import

pdbs = '0'

n =int(s)

pdb.set_trace()

#執行到這裡會自動暫停

print(10 / n)

3)單元測試

對乙個模組、乙個函式、乙個類進行正確性檢驗的過程

setup和teardown

4)文件測試

doctest非常有用,不但可以用來測試,還可以直接作為示例**。通過某些文件生成工具,就可以自動把包含doctest的注釋提取出來。使用者看文件的時候,同時也看到了doctest。

python錯誤 除錯和測試

錯誤 除錯和測試 當我們認為某些 可能會出錯時,就可以用try來執行這段 如果執行出錯,則後續 不會繼續執行,而是直接跳轉至錯誤處理 即except語句塊,執行完except後,如果有finally語句塊,則執行finally語句塊,至此,執行完畢。出錯的時候,一定要分析錯誤的呼叫棧資訊,才能定位錯...

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位址,結果得到乙個空字串,這種錯誤可以通過檢查使用者輸入來做相應的處理。還有一類錯誤是...