python3.X中try/except

包含try...except...在3.x版本中與2.x版本中的用法差別。python

一、先說差別:函數

  在2.x的python中用法實例:spa

1    try: 2  ...... 3    except Exception,e: 4        raise e

  在3.x的python中用法實例:code

1      try: 2  ...... 3 except Exception as e: 4 raise e

好啦,二者差別通過對比一目瞭然(感受這裏說格式更好一點,可是格式與用法的成分都有,算了,就這樣吧)。啦啦啦~對象

 

二、再說和異常相關的:blog

  與Python異常相關的關鍵字
1   關鍵字 關鍵字說明
2   raise 拋出/引起異常 3   try/except 捕獲異常並處理 4   pass 忽略異常 5   as 定義異常實例(except IOError as e) 6   finally 不管是否出現異常,都執行的代碼 7   else 若是try中的語句沒有引起異常,則執行else中的語句的語句沒有引起異常,則執行else中的語句

 

三、使用try和except語句來捕獲異常io

 1 try:  2    block  3   except [exception,[data…]]:  4    block 
 6   try:  7     block  8   except [exception,[data...]]:  9    block 10   else: 11      block

  該種異常處理語法的規則是:class

  ·   執行try下的語句,若是引起異常,則執行過程會跳到第一個except語句。變量

  ·   若是第一個except中定義的異常與引起的異常匹配,則執行該except中的語句。搜索

  ·   若是引起的異常不匹配第一個except,則會搜索第二個except,容許編寫的except數量沒有限制。

  ·   若是全部的except都不匹配,則異常會傳遞到下一個調用本代碼的最高層try代碼中。

  ·   若是沒有發生異常,則執行else塊代碼。

  一個 try...except 塊能夠有一條 else 子句,就像 if 語句。若是在 try 塊中沒有異常引起,而後 else 子句被執行。

 

四、採用traceback(跟蹤)模塊查看異常

      發生異常時,Python能「記住」引起的異常以及程序的當前狀態。Python還維護着traceback(跟蹤)對象,其中含有異常發生時與函數調用 堆棧有關的信息。記住,異常可能在一系列嵌套較深的函數調用中引起。程序調用每一個函數時,Python會在「函數調用堆棧」的起始處插入函數名。一旦異常 被引起,Python會搜索一個相應的異常處理程序。若是當前函數中沒有異常處理程序,當前函數會終止執行,Python會搜索當前函數的調用函數,並以 此類推,直到發現匹配的異常處理程序,或者Python抵達主程序爲止。這一查找合適的異常處理程序的過程就稱爲「堆棧展轉開解」(Stack Unwinding)。解釋器一方面維護着與放置堆棧中的函數有關的信息,另外一方面也維護着與已從堆棧中「展轉開解」的函數有關的信息。 

 

五、經常使用異常名稱:

 1    異常名 描述  2  AttributeError  調用不存在的方法引起的異常  3  EOFError 到文件末尾引起的異常  4  ImportError 導入模塊出錯引起的異常  5  IndexError 列表越界引起的異常  6   IOError                I/O操做引起的異常,如打開文件出錯等  7  KeyError 使用字典中不存在的關鍵字引起的異常  8  NameError 使用不存在的變量名引起的異常  9  TabError 語句塊縮進不正確引起的異常 10  ValueError 搜索列表中不存在的值引起的異常 11   ZeroDivisionError      除數爲零引起的異常
相關文章
相關標籤/搜索