python中的異常是指程序中的例外,違例,影響程序正常執行的情況。
異常機制是指程序出現錯誤后,程序的處理方法。
當出現錯誤后,程序的執行流程發生改變,程序的控制權轉移到異常處理。
如果程序執行過程中發生了異常,我們沒有進行異常處理,那么程序就會中止執行下面的代碼。但是如果我們進行了異常處理,程序會繼續執行下面的代碼。
異常的例子:
NameError:嘗試訪問一個未申明的變量
>>>foo
Traceback(innermostlast):File"",line1,in?
NameError:name'foo'isnotdefined
NameError表示我們訪問了一個沒有初始化的變量.在Python解釋器的符號表沒有找到那個另人討厭的變量.我們將在后面的兩章討論名稱空間,現在大家可以認為它們是連接名字和對象的"地址簿"就可以了.任何可訪問的變量必須在名稱空間里列出.訪問變量需要由解釋器進行搜索,如果請求的名字沒有在任何名稱空間里找到,那么將會生成一個NameError異常.
ZeroDivisionError:除數為零
>>>1/0
Traceback(innermostlast):File"",line1,in?
ZeroDivisionError:integerdivisionormodulobyzero
我們邊的例子使用的是整數,但事實上,任何數值被零除都會導致一個ZeroDivisionError
異常.
SyntaxError:Python解釋器語法錯誤
>>>for
File"",line1EditByVheavens
for
^
SyntaxError:invalidsyntax
SyntaxError異常是唯一不是在運行時發生的異常.它代表Python代碼中有一個不正確的結構,在它改正之前程序無法執行.這些錯誤一般都是在編譯時發生,Python解釋器無法把你的腳本轉化為Python字節代碼.當然這也可能是你導入一個有缺陷的模塊的時候.
IndexError:請求的索引超出序列范圍
>>>aList=[]
>>>aList[0]
Traceback(innermostlast):File"",line1,in?
IndexError:listindexoutofrange
IndexError在你嘗試使用一個超出范圍的值索引序列時引發.
KeyError:請求一個不存在的字典關鍵字
>>>aDict={'host':'earth','port':80}
>>>printaDict['server']Traceback(innermostlast):
File"",line1,in?KeyError:server
映射對象,例如字典,是依靠關鍵字(keys)訪問數據值的.如果使用錯誤的或是不存在的鍵請求字典就會引發一個KeyError異常.
IOError:輸入/輸出錯誤
>>>f=open("blah")Traceback(innermostlast):
File"",line1,in?
IOError:[Errno2]Nosuchfileordirectory:'blah'
類似嘗試打開一個不存在的磁盤文件一類的操作會引發一個操作系統輸入/輸出(I/O)錯誤.任何類型的I/O錯誤都會引發IOError異常.
AttributeError:嘗試訪問未知的對象屬性
>>>classmyClass(object):
...pass
...
>>>myInst=myClass()
>>>myInst.bar='spam'
>>>myInst.bar
'spam'
>>>myInst.foo
Traceback(innermostlast):File"",line1,in?
AttributeError:foo
以上內容為大家介紹了python的異常,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.dietsnews.net/