Python3.3 學習筆記5 - 異常處理


  • 與python異常相關的關鍵字
    • raise:手動拋出/引發異常:raise [exception[,data]]
    • try/except:捕獲異常並處理
    • pass:忽略異常
    • as:定義異常實例(except IOError as e)
    • finally:無論是否出現異常,都執行的代碼
    • else:如果try中的語句沒有引發異常,則執行else中的語句
    • except Exception as error:
  • python中的異常類型
    • StandardError類:如果程序上出現邏輯錯誤, 將引發該異常。StandardError類是所有內斂異常的基類,放置在默認的命名空間中,因此使用IOEroor, EOFError, ImportError等類,不需要導入exception模塊。
    • StopIteration類:判斷循環是否執行到尾部,如果循環到尾部,則拋出該異常。
    • GeneratorExit類:是由Generator函數引發的異常,當調用close()時引發該異常。
    • Warning類:表示程序中的代碼引起的警告。
  • try ... expect
    • try:
    •     block
    • except [exception1(,exception2...),[data…]]:
    •     block
    • (else:    block)
    • 例1:
      • try:
      •     1/0
      • except ZeroDivisionError as errorinfor:
      •     print(errorinfor) #輸出詳細錯誤信息:integer division or modulo by zero
    • 例2:
      • try:
      •   print "Testing begins!"
      •     raise MyError #自己拋出一個異常,后面代碼不執行.
      • except MyError:
      •     print 'This a defined error!'
      • except:
      •   print "Other error!"
  • try ... finally
    • finally 里面只是執行完成try中的代碼后,必須執行的代碼, 即使是 try中有異常拋出,也是會去執行finally
    • 所以,一般情況下,finally里面執行的都是一些清理工作,比如:關閉文件描述符,釋放鎖等 
    • 注意,finally中,如果出現異常,外部如果沒有相應的捕獲機制,該異常會層層拋出,直到最頂端,然后解釋器停止。一般在外層再加一次try except異常捕獲

 

參考文檔

 

 


免責聲明!

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



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