Python學習筆記之錯誤和異常及訪問錯誤訊息詳解

2022-10-04 16:33:17 字數 1998 閱讀 4507

錯誤和異常

指定異常

可以指定要在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...