python異常處理

2021-06-03 17:58:28 字數 1825 閱讀 1120

與許多物件導向一樣,python

具有異常處理,通過使用

try...except

來處理異常,而通過

raise

來引發異常。

異常在 python 

中無處不在;實際上在標準 

python 

庫中的每個模組都使用了它們,並且 

python 

自已會在許多不同的情況下引發它們。例如:

· 使用不存在的字典關鍵字 將引發 keyerror 

異常。

· 搜尋列表中不存在的值 將引發 valueerror 

異常。

· 呼叫不存在的方法 將引發 attributeerror 

異常。

· 引用不存在的變數 將引發 nameerror 

異常。

· 未強制轉換就混用資料型別 將引發 typeerror 

異常。

然而,乙個異常不一定會引起程式的完全崩潰。當異常引發時,可以被 處理掉。有時候乙個異常實際是因為**中的 bug 

(比如使用乙個不存在的變數),但是許多時候,乙個異常是可以預計的。如果你開啟乙個檔案,它可能不存在。如果你連線乙個資料庫,它可能不可連線或沒有訪問所需的正確的安全證書。如果知道一行**可能會引發異常,你應該使用乙個 

try...except 

塊來處理異常。下面是乙個異常處理的例子:

python** 

1 try:   

2     fsock = open("/notthere")          

3 except ioerror:                        

4         print "the file does not exist, exiting gracefully"  

5 print "this line will always print"   

除了處理實際的錯誤條件之外,對於異常還有許多其它的用處。在標準 python 

庫中乙個普通的用法就是試著匯入乙個模組,然後檢查是否它能使用。匯入乙個並不存在的模組將引發乙個 

importerror 

異常。可以使用這種方法來定義多級別的功能,依靠在執行時哪個模組是有效的,或支援多種平台 (即平台特定**被分離到不同的模組中)。例如:

python** 

6 try:   

7     import termios, termios                        

8 except importerror:   

9     try:   

10         import msvcrt                              

11     except importerror:   

12         try:   

13             from easydialogs import askpassword    

14         except importerror:   

15             getpass = default_getpass              

16         else:                                      

17             getpass = askpassword   

18     else:   

19         getpass = win_getpass   

20  else:   

21     getpass = unix_getpass  

python異常處理 Python 異常處理

使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...

python異常舉例 Python異常處理

1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...

python異常處理

當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...