python異常捕捉處理

什麼是異常:

程序遇到錯誤後,會引發異常,如果異常對象未被處理或捕捉,程序會回溯Traceback終止執行;

異常捕捉和處理方式

⑴try:
   print(10/0)
except Exception as e:    #Exception是所有異常的基類
   print("Invalid input",e)

#當我們知道可能出現的異常類型時,可以指定處理的異常類型,除指定的異常類型外 ,其它異常將依然會導致程序崩潰

⑵try:
   y=input('Enter the number')
   print(10/y)
except (ZeroDivisionError,TypeError) as e:   
   print(e)
⑶nuffled=False #通過本變量可進行異常的屏蔽和開啓
try:
   y=input('Enter the number')
   print(10/y)
except ZeroDivisionError:
   if nuffled: #當開關打開時,except捕捉到異常後,會打印異常信息,不影響用戶使用
      print('Division by zero is illegal')
   else:
      raise #當開頭未打開時,except捕捉到異常後,會引發異常,方便內部使用時準確定位問題
⑷try:
   print(x/y)
except : #捕捉所有異常,隱藏所有未處理的錯誤,比較危險的一種方式
   print("something wrong happened")
⑸try:
   print(x/y)
except Exception as e :
   print(e)
   print("please try again")
else:
   print("over") #只有在未出現異常時,else後的語句纔會被執行
finally:
   print("cleaning up")#不管是否出現異常,finally後的語句都會被執行

 raise語句

 當程序出現錯誤,python會自動引發異常,也可以通過raise顯示地引發異常。一旦執行了raise語句,raise後面的語句將不能執行。

try:
   if i in range(5):
      print (10/i)
      raise ZeroDivisionError     #如果引發ZeroDivisionError異常,後面的代碼將不能執行
   print len(s)  #這句不會執行,但是後面的except還是會走到
except TypeError:
   print "空對象沒有長度"

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章