異常處理
num=eval(input("請輸入一個整數:"))
print(num**2)
這是一個讓用戶輸入一個整數,對其輸入整數進行平方運算並輸出的運算
如果當用戶沒有輸入整數時,會產生異常,怎麼處理?
Exited with error status 1
請輸入一個整數:Traceback (most recent call last):
File "e58c31cd143382c0b3b85e1158b3b47f", line 1, in <module>
num=eval(input("請輸入一個整數:"))
File "<string>", line 1, in <module>
NameError: name 'abc' is not defined
第三行的line1
表示了異常發生的代碼行數
最後一行 NameError
表示異常類型,說明命名出現了錯誤
name 'abc' is not defined
表示異常內容提示
異常處理的基本使用
try:
<語句塊1>
except:
<語句塊2>
我們把一塊要執行的語句放在try語句對應的語句塊1中,如果它出現了異常,我們執行except對應的語句塊2,如果它不出現任何異常,那就不執行語句塊2,直接執行語句塊1之後執行後續語句。
try:
<語句塊1>
except <異常類型>:
<語句塊2>
爲了進一步區分不同的異常類型,可以在except中增加一個異常類型標記,表示只有在這種異常類型發生時,纔會執行語塊2。
try:
num = eval(input("請輸入一個整數:"))
print(num**2)
except: #NameError:
print("輸入不是整數")
異常處理的高級使用
try:
<語句塊1>
except:
<語句塊2>
else:
<語句塊3>
finally:
<語句塊4>
無論前面是否發生異常,finally對應的語句塊4一定會執行,else對應的語句塊3在不發生異常時執行。可以理解爲,首先執行語句塊1,如果不發生異常去執行語句塊3,如果發生異常去執行語句塊2,無論發不發生異常,最後都要執行語句塊4。