python--異常處理

異常處理sql

  異常處理是爲了讓程序出錯後,既能捕獲到異常,又不影響程序運行。數據庫

  異常處理的關鍵字是【try...except...finally...】,即先要考慮到這段代碼可能會出現什麼樣的錯誤,而後作對應的處理,spa

  try裏面就是包含你作處理的代碼,except裏面就是出了某種錯誤的時候,怎麼去處理,finally裏面是無論出不出異常,code

  都處理這裏的代碼;還有一個else,就是不出異常時如何處理。對象

  下面是一個異常處理的例子blog

 1 def exc(a,b):
 2     try:
 3         c=a/b
 4     except Exception as e:
 5         print('出錯了,全部類型錯誤,錯誤是%s' %e)
 6     except KeyError as e:
 7         print('Key出錯了')
 8     else:
 9         print('這裏沒有出錯')
10         return c
11     finally:
12         print('出沒沒錯咱都走這裏,多用於數據庫關閉')

常見的異常信息索引

 1 AttributeError: 試圖訪問一個對象沒有的屬性,好比foo.x,可是foo沒有屬性x
 2  
 3 IOError:輸入/輸出異常,通常是沒法打開文件
 4  
 5 ImportError: 沒法導入模塊或包,通常是路徑問題或名稱錯誤
 6  
 7 IndentationError:代碼沒有正確對齊,屬於語法錯誤
 8  
 9 IndexError:下標索引超出序列邊界,好比x只有三個元素,卻試圖訪問x[3]
10  
11 KeyError:試圖訪問字典裏不存在的鍵
12  
13 KeyboardInterrupt:Ctrl+C被按下
14  
15 NameError:使用一個還未被賦予對象的變量
16  
17 SyntaxError: 語法錯誤
18  
19 TypeError: 傳入對象類型與要求的不符
20  
21 UnboundLocalError:試圖訪問一個還未被設置的局部變量,通常是因爲在代碼塊外部還有另外一個同名變量
22  
23 ValueError: 傳入一個調用者不指望的值,即便值的類型是正確的

主動拋出異常it

  有時程序須要咱們主動拋出異常,此時須要使用【raise】來完成.io

1 def is_corrent_sql(sql):
2     #select insert delete update
3     sql_start=['select','insert','delete','update']
4     for start in sql_start:
5         if sql.startswith(start):
6             pass
7         else:
8             raise TypeError     #主動拋出異常,自定義異常
9 is_corrent_sql('sss')
相關文章
相關標籤/搜索