python3.X中try/except


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

1、先說差異:

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

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

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

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

好啦,兩者差異經過對比一目了然(感覺這里說格式更好一點,但是格式與用法的成分都有,算了,就這樣吧)。啦啦啦~

 

2、再說和異常相關的:

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

 

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

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

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

  ·   執行try下的語句,如果引發異常,則執行過程會跳到第一個except語句。

  ·   如果第一個except中定義的異常與引發的異常匹配,則執行該except中的語句。

  ·   如果引發的異常不匹配第一個except,則會搜索第二個except,允許編寫的except數量沒有限制。

  ·   如果所有的except都不匹配,則異常會傳遞到下一個調用本代碼的最高層try代碼中。

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

  一個 try...except 塊可以有一條 else 子句,就像 if 語句。如果在 try 塊中沒有異常引發,然后 else 子句被執行。

 

4、采用traceback(跟蹤)模塊查看異常

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

 

5、常用異常名稱:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM