1. 程式人生 > 程式設計 >通過程式碼例項瞭解Python異常本質

通過程式碼例項瞭解Python異常本質

異常的本質導引問題

在實際工作中,我們遇到的問題都不是完美的,比如:你寫某個模組,使用者輸入不一定符合你的要求:你的程式要開啟某個檔案,這個檔案不可能存在或者開啟格式不對,你要讀取資料庫資料,資料可能是空的;我們程式執行著,但記憶體或硬碟可能已經滿了

軟體程式執行過程中,非常可能遇到我們剛剛提出的這些問題,我們稱之為:異常,英文名:Exception,譯為:例外。遇到這些情況,我們的處理方法如下

如果我們要拷貝一個檔案,在沒有異常的情況下,我們需要考慮到各種情況

if 'd:/a.txt'這個檔案存在:
  if e盤空間大於a.txt長度:
    if 檔案複製一半IO流斷掉:
       停止copy,輸出:IO流問題!
    else:
       copyFile('d:/a.txt','e:/a.txt')
  else:
    print('e盤空間不夠放a.txt!')
 else:
 print('a,txt不存在!')

這種方法,有兩個壞處:邏輯程式碼和錯誤處理程式碼放在一起程式設計師本身需要考慮到例外情況較複雜,對程式設計師本身要求較高

python的異常機制給我們提供了方便的處理方式

try:
  copyFile('d:/a.txt','e:/a.txt')
except:
  print('檔案無法拷貝')

異常機制本質

異常指程式執行過程中的非正常現象,列如:使用者輸入錯誤,除數為零,需要處理的檔案不存在,陣列下標越界等

所謂異常處理,就是指程式在出現異常後依然可以正確執行後續程式,而不會因為異常終止執行

python中,引進了很多用來描述和處理異常的類,稱為異常類,異常類定義中包含了該異常的資訊流和對異常的處理方法。下面較為完整的展示了python中內建異常類的繼承層次

通過程式碼例項瞭解Python異常本質

Python中一切皆物件,異常也採用物件的方式處理,處理過程:

1. 丟擲異常:在執行一個方法時,如果發生異常,則這個方法生成代表該異常的一個物件,停止當前執行路徑,並把異常物件交給直譯器

2. 捕獲異常:直譯器得到該異常後,尋找相應的程式碼處理該異常

解決異常問題的態度不慌張,細看資訊定位錯誤。

百度並檢視十個帖子。

與他人協商解決異常解決的關鍵:定位

當發生異常時,直譯器會報相關異常資訊,並會在控制檯列印相關資訊,我們只需要按照從上到下的順序即可追溯錯誤發生過程

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。