學習python(五) 異常

python使用異常對象來表示異常情況。遇到異常後,會引發異常,如果異常對象未被處理或捕獲,程序就會用回溯並終止執行。如果知道某段代碼可能導致某種異常,如除零,又不希望終止,那麼就根據需要添加try/except 或者try/finally進行處理。

雖然使用條件語句也能實現與異常處理同樣的功能,但是條件語句可能在自然性和可讀性上差些,所以儘量使用異常處理機制。(在做一件事時去處理可能出現的錯誤,而不是在開始做事前就進行大量的檢查)

 

每個異常都是一些類的實例,常見的異常類有:

Exception            所有異常類的基類

AttributeError     特性引用或賦值失效導致

IOError               試圖打開不存在的文件

IndexError          序列中索引越界

KeyError             使用映射中不存在的鍵

NameError          找不到名字或者變量

SyntaxError         語法錯誤

TypeError            類型錯誤

ValueError          值錯誤

ZeroDivisionError      除0錯誤

 

自定義異常類

class CustomException(Exception):pass

 

拋出異常

raise Exception(“some thing error.”)

 

捕獲異常

使用try/except 語句

try:

    x = input("Enter the first number : ")

    y = input("Enter the second number : ")

    print x / y

except ZeroDivisionError:

    print “The Second number can't be zero!”

 

捕獲多個異常

try:

    code

except ZeroDivisionError:

    print “The Second number can't be zero!”

except TypeError:

    print “That wasn't a number.”

另一種形式

except (ZeroDivisionError, TypeError, NameError):

     print “some thing wrong.”

捕捉所有異常

except:

    print “some thing wrong.”

或者

except Exception, e:

    print e

它可以讓程序繼續運行,並且能打印錯誤。

 

else語句,當沒有異常發生時做某些動作

try:

    code

except:

    pass

else:

    pass

 

finally語句,用來在可能的異常後進行清理

try:

   code

finally:

   pass

不管try中是否發生異常,finally語句總會執行



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章