在 Python 中引發異常

Rana Hasnain Khan 2023年1月30日 2022年5月17日
  1. 在 Python 中引發異常
  2. Python 中的 try 語句
  3. Python 中的 raise 關鍵字
  4. Python 中的 else 子句
在 Python 中引發異常

我們將介紹在 Python 中引發異常的不同方法。

在 Python 中引發異常

當我們編寫 Python 程式並執行它們時,如果程式中缺少某些內容或程式碼中有錯誤,它會給出輸出或錯誤。異常類似於 Python 程式語言中的異常。

當我們的程式做錯事時,Python 會引發許多內建異常。如果在我們嘗試執行程式時發生任何異常,它會停止程式並顯示程式嘗試執行程式碼時發生的異常。

本文通過一些簡單的程式演示瞭如何使用 tryexceptfinally 語句處理 Python 程式中的異常。

Python 中的 try 語句

在 Python 中,我們可以通過在程式碼中使用 try 語句來處理異常,以最大限度地減少異常的機會。try 子句包含可能產生異常的關鍵操作。

except 子句包含解決異常的程式碼。

現在,讓我們看一個例子,如果使用者輸入錯誤的值,使用 try 語句引發異常。

# python
Any_List = [2,'Husnain',4,6,8]

for value in Any_List:
    try:
        print("The value is", value)
        raci = 1/int(value)
        print("The reciprocal of", value, "is", raci)
        print("")
    except:
        print("Oops! There is a string in this list.")
        print("The reciprocal of", value, "cannot be done!")
        print("")

輸出:

使用 try 語句在 python 中引發異常

上面的例子顯示了這個程式遍歷了 Any_List 中的條目,如果沒有異常,except 塊將被跳過,程式碼將順利執行,直到它到達 Any_List 中的最後一個元素.

但是,如果在遍歷 Any_List 中的所有元素時出現異常,except 塊將被執行,並列印如上結果所示的值。

現在,讓我們舉一個例子,我們將在其中建立三個不同的 except 案例。我們在上面的程式中提到了只有一個 except 塊的 try 語句。

但是在這個程式中,我們使用了三個 except 塊,它們提供了更多選擇子句的選項。

# python
VAR0 = 10
try:
    VAR1 = int("Husnain")
    VAR2 = int(56)

    result = (int(VAR1) * int(VAR2))/(VAR0 * int(VAR2))

except ValueError as ve:
    print(ve)
    exit()

except TypeError as te:
    print(te)
    exit()

except:
    print('Unexpected Error!')
    exit()
print (result)

輸出:

使用多個 except 語句在 python 中引發異常

這是一個包含三個異常塊的程式。現在,讓我們來看看另一種方法,raise,它可以用來在 Python 中引發異常。

Python 中的 raise 關鍵字

當 Python 程式設計執行時程式碼中出現一些錯誤時,就會引發異常。我們可以使用 raise 關鍵字手動引發異常。

我們還可以將值傳遞給異常,以提供有關異常以及程式引發它的原因的更多資訊。

讓我們舉個例子,我們將使用 raise 關鍵字手動引發錯誤。

# python
try:
    num=int(-23)
    if num <= 0:
        raise ValueError("entred number is not positive")
except ValueError as ve:
    print(ve)

輸出:

在 python 中使用 raise 關鍵字引發異常

上面的例子表明,輸入負數會引發我們通過 raise 關鍵字設定的異常。

現在,讓我們來看另一個示例,在該示例中,我們將使用 else 子句手動引發異常。

Python 中的 else 子句

在某些情況下,當我們想在 try 語句下執行程式沒有任何錯誤時,我們會使用 else 語句來完成程式處理。

# python
try:
 number = int(21)
 assert number % 2 == 0

except:
 print("It is not a even number!")
else:
 reciprocal = 1/number
 print(reciprocal)

輸出:

使用 else 語句在 python 中引發異常

從上面的例子可以看出,如果輸入的數是偶數,那麼程式輸出這個數的倒數,如果不是偶數,就會丟擲異常,如上結果所示。

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

相關文章 - Python Exception