1. 程式人生 > 其它 >四python異常處理

四python異常處理

技術標籤:# python安全攻防

前言

對於每一種高階語言來說,異常處理結構不僅能夠提高程式碼的健壯性,而且也提高了程式碼的容錯性,從而不會因為使用者錯誤輸入造成系統崩潰,也可以通過異常處理結構為使用者提供更加友好的錯誤提示。在python開發過程中引發程式異常錯誤的原因有很多中,較為常見的有:除0、下標越界等。
Python中提供了很多不同形式的異常處理結構,其基本利用思路都是:先嚐試執行程式碼,再進行處理可能發生的錯誤。

文章目錄

try…except…結構

try:
    a = input("請輸入被除數:")
    b = input("請輸入除數:")
    c = float(a)/float(b)
    print("除的結果是:", c)
except BaseException as e:
    print(e)

結果:

請輸入被除數:6
請輸入除數:5
除的結果是: 1.2

發生異常:

請輸入被除數:1
請輸入除數:0
float division by zero 	#被除數為0

try…except…else結構

與上面差不多,如果 try 塊中沒有丟擲異常,則執行 else 塊。如果 try 塊中丟擲異常,則執行 except 塊,不執行 else 塊。

try:
    a = input("請輸入被除數:")
    b = input("請輸入除數:")
    c = float(a)/float(b)
except BaseException as e:
    print(e)
    print("我是異常")
else:
    print("除的結果是:",c)

正常輸出:

請輸入被除數:45
請輸入除數:15
除的結果是: 3.0

有異常:

請輸入被除數:1354
請輸入除數:0
float division by zero

try…except…finally…結構

try…except…finally 結構中,finally 塊無論是否發生異常都會被執行;通常用來釋放 try 塊中申請的資源。

try:
    a = input("請輸入被除數:")
    b = input("請輸入除數:")
    c = float(a)/float(b)
except BaseException as e:
    print(e)
    print("我是異常")
else:
    print("除的結果是:", c)
finally:
    print("程式結束")

正常執行:

請輸入被除數:8
請輸入除數:2
除的結果是: 4.0
程式結束

有異常:

請輸入被除數:aaaa
請輸入除數:123
could not convert string to float: 'aaaa'
程式結束

可以發現不管有沒有異常都執行了finally中的語句。

常見的異常

只需要記住exception萬能異常就行了,什麼異常度可以接受,其他的可以根據字面意思理解。
在這裡插入圖片描述