四python異常處理
阿新 • • 發佈:2021-01-10
技術標籤:# 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萬能異常就行了,什麼異常度可以接受,其他的可以根據字面意思理解。