16.异常处理机制:exception
生活随笔
收集整理的這篇文章主要介紹了
16.异常处理机制:exception
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python常見異常總結:http://bbs.fishc.com/forum.php?mod=viewthread&tid=45814&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403
AssertError:斷言assert語句失敗 AttributeError:嘗試訪問未知的/不存在的對象的方法IndentationError:縮進錯誤 ImportError:導入模塊失敗 SyntaxError:python的語法錯誤 ZeroDivisionError:除零錯誤 IndexError:索引超出序列的范圍 TypeError:不同類型直接運算KeyError:字典中查找一個不存在的關鍵字IOError:沒有文件或目錄MemoryError:內存溢出(可通過刪除和釋放對象解決)NameError:嘗試訪問一個不存在的變量KeyboardError:中斷鍵(Ctrl+C)OSError:操作系統產生的異常(例如打開一個不存在的文件)OverflowError:數值運算超出最大限制RuntimeError:一般運行時出現的錯誤(遞歸超出最大迭代次數等)ReferenceError:試圖訪問一個已經被垃圾回收機制回收的對象ValueError:傳入無效的參數FloatingPointError:浮點計算錯誤EOFError:用戶輸入文件末尾標志EOF(Ctrl+D)NotImplementedErrror:尚未實現的方法檢測并處理異常
語法:
try:檢測范圍 except Exception[as reason]: #Exception異常類型 reason:異常原因出現異常后處理異常的代碼 finally:無論如何讓都會被執行的代碼例:
【代碼1】 try:f = open('G:\\new.txt','w') #以w方式打開文件f.write('I love you!')1/0 #發生除以0異常f.close() #發生除以0異常后,直接跳過此句話 except (IOError,ZeroDivisionError) as reason: #捕獲初零異常print('文件出錯誤了!\n' + str(reason)) #打印錯誤原因文件出錯誤了! integer division or modulo by zero 但是:并沒有把'I love you!'寫入'G:\\new.txt'文件, 因為除零異常發生,直接跳過f.close()語句,因此緩沖區中的 數據還沒有寫入文件,就被釋放?!敬a2】修改成帶finally的代碼 try:f = open('G:\\new.txt','w') #以w方式打開文件f.write('I love you!')1/0 #發生除以0錯誤 except (IOError,ZeroDivisionError) as reason: #捕獲初零異常print('文件出錯誤了!\n' + str(reason)) #打印錯誤原因 finally: #把必須要執行的代碼放在finally之后f.close() 文件出錯誤了! integer division or modulo by zero 此時,把'I love you!'寫入了'G:\\new.txt'文件總結
以上是生活随笔為你收集整理的16.异常处理机制:exception的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 15.泡菜:pickle模块
- 下一篇: 1.VMware安装3个ubuntu14