捕獲異常:
在程式執行過程中出現錯誤,程式将會抛出異常資訊,并停止退出;可以通過try捕獲異常列印出,但整個程式不會被中斷;
如果錯誤沒有被捕獲,它就會一直往上抛,最後被Python解釋器捕獲,列印一個錯誤資訊,然後程式退出。
try: #檢測語句中的代碼執行是否正常
num = int(input('your idea >>>'))
sums = num + 100
except Exception as e: #try代碼異常則捕獲
print(e)
else: #try代碼正常則執行
print('正常')
finally: #無論怎樣最後都執行
print('結束')
如果input輸入一個數字,代碼執行過程:try(全部) >> else >> finally
如果input輸入一個非數字,int()方法處理非數字會異常,則跳過下面的代碼,直接捕獲異常,代碼執行過程:try(異常處) >>except >> finally
抛出異常:
捕獲一個錯誤實際是捕獲到異常class的一個執行個體。是以,錯誤并不是憑空産生的,而是有意建立并抛出的。Python的内置函數會抛出很多類型的錯誤,自己編寫的函數也可以抛出錯誤。
如果要抛出錯誤,首先根據需要,可以定義一個錯誤的class,選擇好繼承關系,然後,用raise語句抛出一個錯誤的執行個體:
class MyError(Exception): #繼承Exception類
pass
n = input('your idea >>>')
print('開始')
if n == '0':
raise MyError() #抛出MyError類型異常
print('結束')
如果在input中輸入一個0,則程式終止,抛出異常。