Python入門進階篇 No.2 —— try_except基本結構
阿新 • • 發佈:2021-01-18
技術標籤:# 進階python程式語言經驗分享程式人生windows
Python入門進階篇 No.2 —— try_except基本結構
文章目錄
前生篇:異常本質_除錯核心理念
後世篇:try…except…else 結構_try…except…finally 結構
基礎篇:小白不看都能懂 —— Python之真功夫系列(全章)
一、try…一個 except 結構
- try…except 是最常見的異常處理結構。結構如下:
try:
被監控的可能引發異常的語句塊
except BaseException [as e]:
異常處理語句塊
- try 塊包含著可能引發異常的程式碼,except 塊則用來捕捉和處理髮生的異常。執行的時候,如果 try 塊中沒有引發異常,則跳過 ecept 塊繼續執行後續程式碼;執行的時候,如果 try塊中發生了異常,則跳過 try 塊中的後續程式碼,跳到相應的 except 塊中處理異常;異常處理完後,繼續執行後續程式碼。
# 遇到異常的執行順序:
# 測試簡單的0不能做除數出現的異常
try:
print('step1')
a = 6 / 0
print('step2' )
except BaseException as e:
print('step3')
print(e)
print('step4')
-----------------------
step1
step3
division by zero
step4
- 我們可以看到,程式執行到引發異常的語句時,直接掉到 except 異常處理語句塊進行處理;處理完畢後,繼續執行下面的程式。
# 遇到異常的執行順序:
# 測試簡單的0不能做除數出現的異常
try:
print('step1')
a = 6 / 2
print('step2')
except BaseException as e:
print('step3')
print(e)
print('step4')
----------------------
step1
step2
step4
- try 語句塊沒有發生異常,則正常執行完 try 塊後跳過 except 異常處理語句塊,繼續往下執行。
- 迴圈輸入數字,如果不是數字則處理異常;直到輸入 66,則結束迴圈。
while True:
try:
x = int(input('請輸入一個數字:'))
print('輸入的數字是', x)
if x == 66:
print('退出程式')
break
except:
print('異常:輸入的不是一個數字')
-------------------------------
輸入的數字是 56
請輸入一個數字:xyz
異常:輸入的不是一個數字
請輸入一個數字:66
輸入的數字是 66
退出程式
二、try…多個 except 結構
- 上面的結構可以捕獲所有的異常,工作中也很常見。但是,從經典理論考慮,一般建議儘量捕獲可能出現的多個異常(按照先子類後父類的順序),並且針對性的寫出異常處理程式碼。為了避免遺漏可能出現的異常,可以在最後增加 BaseException。結構如下:
try:
被監控的、可能引發異常的語句塊
except Exception1:
處理 Exception1 的語句塊
except Exception2:
處理 Exception2 的語句塊
...
except BaseException:
處理可能遺漏的異常的語句塊
# 多個except結構
try:
a = input('請輸入被除數:')
b = input('請輸入除數:')
c = float(a) / float(b)
print(c)
except ZeroDivisionError:
print('異常,除數不能為0')
except TypeError:
print('異常,除數和被除數都應該為數值型別')
except NameError:
print('異常,變數不存在')
except BaseException as e:
print(e)
print(type(e))
--------------------------------
請輸入被除數:10
請輸入除數:0
異常,除數不能為0
總結
以上幫各位總結好了,收藏,關注即可查收。
前生篇:異常本質_除錯核心理念
後世篇:try…except…else 結構_try…except…finally 結構
基礎篇:小白不看都能懂 —— Python之真功夫系列(全章)
關注下方公眾號,免費拿Python學習資料!!!