python學習 基礎 錯誤 除錯 測試

2021-09-09 05:10:08 字數 2056 閱讀 6906

# 在程式執行的過程中,如果發生了錯誤,可以事先約定返回乙個錯誤**,這樣,就可以知道是否有錯,以及出錯的原因

# # # try

# 當我們認為某些**可能會出錯時,就可以用try來執行這段**,如果執行出錯,則後續**不會繼續執行,而是直接跳轉至錯誤處理**,即except語句塊,

# 執行完except後,如果沒有錯誤發生,可以在except語句塊後面加乙個else,當沒有錯誤發生時,會自動執行else語句,如果有finally語句塊,則執行finally語句塊,至此,執行完畢。

# valueerror zerodivisionerror

try:

print('try...')

r = 10 / 2

print('result:', r)

except exception as e:

print('except:', e)

else:

print('no error!')

finally:

print('finally...')

print('end')

#使用try...except捕獲錯誤還有乙個巨大的好處,就是可以跨越多層呼叫,所有不需要在每個可能出錯的地方去捕獲錯誤,只要在合適的層次去捕獲錯誤就可以了

##呼叫棧

#如果錯誤沒有**獲,它就會一直往上拋,最後被python直譯器捕獲,列印乙個錯誤資訊,然後程式退出。

## 記錄錯誤

# 既然我們能捕獲錯誤,就可以把錯誤堆疊列印出來,然後分析錯誤原因,同時,讓程式繼續執行下去。

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

# 通過配置,logging還可以把錯誤記錄到日誌檔案裡,方便事後排查。

import logging

def foo(s):

return 10 / int(s)

def bar(s):

return foo(s) * 2

def main():

try:

bar('0')

except exception as e:

logging.exception(e)

main()

print('end') # 這裡最終會執行,

# 丟擲錯誤

# 首先根據需要,可以定義乙個錯誤的class,選擇好繼承關係,然後,用raise語句丟擲乙個錯誤的例項:

class fooerror(valueerror):

pass

def foo1(s):

n = int(s)

if n==0:

raise fooerror('invalid value: %s' % s)

return 10 / n

foo1('0')

# 如果可以選擇python已有的內建的錯誤型別(比如valueerror,typeerror),盡量使用python內建的錯誤型別

# 捕獲錯誤目的只是記錄一下,便於後續追蹤。但是,由於當前函式不知道應該怎麼處理該錯誤,所以,最恰當的方式是繼續往上拋,讓頂層呼叫者去處理。

# # 除錯

# # print() 列印

# assert 斷言

# assert n != 0, 'n is zero!' 如果斷言失敗,assert語句本身就會丟擲assertionerror:

# logging

# 它允許你指定記錄資訊的級別,有debug,info,warning,error等幾個級別

# 新增配置logging.basicconfig(level=logging.info)

# logging.info()

# pdb

# 第4種方式是啟動python的偵錯程式pdb,讓程式以單步方式執行

# python -m pdb err.py

# pdb.set_trace()

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

#

Python錯誤與除錯

try catch語法 try pass except someerror as e pass except someerror as e pass finally pass日誌級別 critical error warning info debug notset import logging lo...

python學習筆記 基礎技能 除錯

1 除錯 利用pdb模組進行除錯,這種方式是在命令列下面進行除錯的。第一種方法是從命令列進入,進行.py檔案的執行,在執行時候新增以下引數 python m pdb 20140805.py 截圖如下所示 第二種是 比較常用的,就是在程式中間插入一段程式,import pdbpdb.set trace...

Python學習筆記 錯誤 除錯和測試

根據廖雪峰python教程整理 在程式執行過程中,總會遇到各種各樣的錯誤。有的錯誤是程式編寫有問題造成的,比如本來應該輸出整數結果輸出了字串,這種錯誤我們通常稱之為bug bug 是必須修復的。有的錯誤是使用者輸入造成的,比如讓使用者輸入email 位址,結果得到乙個空字串,這種錯誤可以通過檢查使用...