異常
當(dāng)你的程序出現(xiàn)例外情況時(shí)就會(huì)發(fā)生異常(Exception)。例如,當(dāng)你想要讀取一個(gè)文件時(shí),而那個(gè)文件卻不存在,怎么辦?又或者你在程序執(zhí)行時(shí)不小心把它刪除了,怎么辦?這些通過(guò)使用異常來(lái)進(jìn)行處理。類似地,如果你的程序中出現(xiàn)了一些無(wú)效的語(yǔ)句該怎么辦?Python將會(huì)對(duì)此進(jìn)行處理,舉起(Raises)它的小手來(lái)告訴你哪里出現(xiàn)了一個(gè)錯(cuò)誤(Error)。
錯(cuò)誤
你可以想象一個(gè)簡(jiǎn)單的print函數(shù)調(diào)用。如果我們把print誤拼成Print會(huì)怎樣?你會(huì)注意到它的首字母是大寫。在這一例子中,Python會(huì)拋出(Raise)一個(gè)語(yǔ)法錯(cuò)誤。
>>>Print("HelloWorld")
Traceback(mostrecentcalllast):
File"",line1,inNameError:name'Print'isnotdefined>>>print("HelloWorld")
HelloWorld
你會(huì)注意到一個(gè)NameError錯(cuò)誤被拋出,同時(shí)Python還會(huì)打印出檢測(cè)到的錯(cuò)誤發(fā)生的位置。這就是一個(gè)錯(cuò)誤錯(cuò)誤處理器(ErrorHandler)2為這個(gè)錯(cuò)誤所做的事情。
異常
我們將嘗試(Try)去讀取用戶的輸入內(nèi)容。按下[ctrl-d]來(lái)看看會(huì)發(fā)生什么事情。
>>>s=input('Entersomething-->')
Entersomething-->Traceback(mostrecentcalllast):
File"",line1,inEOFError
此處Python指出了一個(gè)稱作EOFError的錯(cuò)誤,代表著它發(fā)現(xiàn)了一個(gè)文件結(jié)尾(EndofFile)符號(hào)(由ctrl-d實(shí)現(xiàn))在不該出現(xiàn)的時(shí)候出現(xiàn)了。
處理異常
我們可以通過(guò)使用try..except來(lái)處理異常狀況。一般來(lái)說(shuō)我們會(huì)把通常的語(yǔ)句放在try代碼塊中,將我們的錯(cuò)誤處理器代碼放置在except代碼塊中。
案例(保存文exceptions_handle.py):
try:
text=input('Entersomething-->')exceptEOFError:
print('WhydidyoudoanEOFonme?')exceptKeyboardInterrupt:
print('Youcancelledtheoperation.')else:
print('Youentered{}'.format(text))
輸出
#Pressctrl+d
$pythonexceptions_handle.py
Entersomething-->WhydidyoudoanEOFonme?
#Pressctrl+c
$pythonexceptions_handle.py
Entersomething-->^CYoucancelledtheoperation.
$pythonexceptions_handle.py
Entersomething-->Noexceptions
YouenteredNoexceptions
以上內(nèi)容為大家介紹了python培訓(xùn)之怎么處理錯(cuò)誤和異常,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。