[Python基礎]008.異常

異常html


異常處理

捕獲異常

  • try/except 與C,java等語言用try/catch來捕獲異常類似,Python使用try/except
  • try/except/finally 不管是否有異常都會執行finally下的語句
  • try/except/else 沒有拋出異常時執行else下的語句

代碼java

try:
    f = open('data.txt')
    f.read()
    print zz
    print 5/0
except IOError, e:              # 捕獲IO異常,變量e接收具體的錯誤信息
    print e
except NameError, e:            # 捕獲名字異常
    print e
except Exception, e:            # 捕獲剩下的其餘異常
    print e

else:                           # 沒有異常時執行
    print 'no error'            

finally:                        # 不管有無異常都會執行的內容
    print 'do anyway'

 

拋出異常

  • raise 拋出一個異常

代碼web

def error_fun():
    raise Exception('it is an error function')  # 拋出一個通用異常Exception

# 捕獲上面的異常 
try:
    error_fun()
execept Exception, e:
    print e

 

自定義異常

經過繼承異常類,就能夠自定義異常。最多見的就是直接繼承自Exception類。ide

# 自定義異常
class MyException(Exception):
    def __init__(self, arg, arg2):
        Exception.__init__(self, arg)
        self.arg2 = arg2

# 捕獲
try:
    raise MyException('abc', 10)
except MyException, e:
    print e, e.arg2

 

一些常見的異常

  • Exception 基礎異常
  • ZeroDivisionError 除數爲0異常
  • OverflowError 內存溢出
  • ImportError 導入模塊異常
  • NameError 沒有聲明對象
  • RuntimeError 通常運行時異常
  • NotImplementedError 未實現方法
  • SyntaxError 語法錯誤
  • IOError IO操做異常
  • ...

 

 

本站文章爲 寶寶巴士 SD.Team 原創,轉載務必在明顯處註明:(做者官方網站: 寶寶巴士 
轉載自【寶寶巴士SuperDo團隊】 原文連接: http://www.cnblogs.com/superdo/p/4581764.html
post

相關文章
相關標籤/搜索