python主動(dòng)拋出異常怎么實(shí)現(xiàn)

小億
127
2023-12-16 18:31:49

在Python中,可以使用raise語(yǔ)句來(lái)主動(dòng)拋出異常。raise語(yǔ)句后面可以跟一個(gè)異常類的實(shí)例,或者是一個(gè)異常類的類型和錯(cuò)誤信息,以及其他的異常相關(guān)信息。

以下是一個(gè)示例,演示如何在函數(shù)中主動(dòng)拋出異常:

def divide(x, y):
    if y == 0:
        # 使用異常類的實(shí)例來(lái)拋出異常
        raise ZeroDivisionError("除數(shù)不能為零")
    else:
        return x / y

try:
    result = divide(10, 0)
    print(result)
except ZeroDivisionError as e:
    print(e)

在上面的示例中,定義了一個(gè)divide函數(shù)來(lái)實(shí)現(xiàn)兩個(gè)數(shù)相除的操作。如果除數(shù)為零,則使用raise語(yǔ)句拋出一個(gè)ZeroDivisionError異常,并傳遞了一個(gè)錯(cuò)誤信息"除數(shù)不能為零"。

在try塊中調(diào)用divide函數(shù),由于除數(shù)為零,會(huì)拋出ZeroDivisionError異常。然后在except塊中捕獲并處理該異常,打印出錯(cuò)誤信息。

運(yùn)行上述代碼,輸出結(jié)果為:“除數(shù)不能為零”。

需要注意的是,raise語(yǔ)句可以拋出任何類型的異常,不僅限于內(nèi)置的異常類。所以,在使用raise語(yǔ)句時(shí),可以選擇合適的異常類,或者自定義一個(gè)新的異常類來(lái)拋出。

0