錯誤和異常
指定異常
可以指定要在except塊中處理哪個錯誤,如下所示:
try:
# some code
except valueerror:
# some code
現在它會捕獲 valueerror 異常,但是不會捕獲其他異常。如果我們希望該處理程式處理多種異常,我們可以在except後面新增異常元組。
try:
# som程式設計客棧e code
except (valueerror, keyboardinterrupt):
# some code
或者,如果我們希望根據異常執行不同的**塊,可以新增多個except塊。
try:
# some code
except valueerror:
# some code
except keyboardinterrupt:
# some code
處理除以零的案例:
def create_groups(items, num_groups):
try:
size = len(items) // num_groups
except zerodivisionerror:
print("warning: returning empty list. please use a nonzero number.")
return
else:
groups =
for i in range(0, len(items), size):
groups.append(items[i:i + size])
return groups
finally:
print("{} groups returned.".format(num_groups))
print(程式設計客棧"creating 6 groups...")
for group in create_groups(range(32), 6):
print(list(group))
print("\ncreating 0 groups...")
for group in create_groups(range(32), 0):
print(list(group))
正確的輸出應該是:
creating 6 groups...
6 groups returned.
[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]
[10, 11, 12, 13, 14]
[15, 16, 17, 18, 19]
[20, 21, 22, 23, 24]
[25, 26, 27, 28, 29]
[30, 31]
creating 0 groups...
warning: returning empty list. please usedimkinog a nonzero number.
0 groups returned.
訪問錯誤訊息
在處理異常時,依然可以如下所示地訪問其錯誤訊息:
try:
# some code
dimkinogexcept zerodivisionerror as e:
# so code
print("zerodivisionerror occurred: {}".format(e))
應該會輸出如下所示的結果:
zerodivisionerror occurred: division by zero
如果沒有要處理的具體錯誤,依然可以如下所示地訪問訊息:
try:
# some code
except exception as e:
# some code
print("exception occurred: {}".format(e))
此處:exception是所有內建異常的基礎類。
python錯誤和異常學習筆記
1.python中的異常 nameerror 嘗試訪問乙個未申明的變數 zerodivisionerror 除數為零 syntaxerror 直譯器語法錯誤 indexerror 請求的索引超出序列範圍 keyerror 請求乙個不存在的字典關鍵字 ioerror 輸入 輸出錯誤 attribute...
Python學習筆記 錯誤 除錯和測試
根據廖雪峰python教程整理 在程式執行過程中,總會遇到各種各樣的錯誤。有的錯誤是程式編寫有問題造成的,比如本來應該輸出整數結果輸出了字串,這種錯誤我們通常稱之為bug bug 是必須修復的。有的錯誤是使用者輸入造成的,比如讓使用者輸入email 位址,結果得到乙個空字串,這種錯誤可以通過檢查使用...
Python學習筆記10 錯誤 除錯和測試
try.except.finally.不同型別的錯誤由不同的except語句塊處理,如果沒有錯誤發生,可以在except語句塊後面加乙個else,沒有錯誤發生時,執行else語句,finally語句如果有,一定會被執行 可以沒有finally語句 try print try.r 10 int 2 p...