麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Python > 正文

python錯(cuò)誤處理詳解

2020-02-23 05:52:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在程序運(yùn)行的過(guò)程中,如果發(fā)生了錯(cuò)誤,可以事先約定返回一個(gè)錯(cuò)誤代碼,這樣,就可以知道是否有錯(cuò),以及出錯(cuò)的原因。在操作系統(tǒng)提供的調(diào)用中,返回錯(cuò)誤碼非常常見。比如打開文件的函數(shù)open(),成功時(shí)返回文件描述符(就是一個(gè)整數(shù)),出錯(cuò)時(shí)返回-1。

用錯(cuò)誤碼來(lái)表示是否出錯(cuò)十分不便,因?yàn)楹瘮?shù)本身應(yīng)該返回的正常結(jié)果和錯(cuò)誤碼混在一起,造成調(diào)用者必須用大量的代碼來(lái)判斷是否出錯(cuò):
代碼如下:
def foo():
    r = some_function()
    if r==(-1):
        return (-1)
    # do something
    return r

def bar():
    r = foo()
    if r==(-1):
        print 'Error'
    else:
        pass

一旦出錯(cuò),還要一級(jí)一級(jí)上報(bào),直到某個(gè)函數(shù)可以處理該錯(cuò)誤(比如,給用戶輸出一個(gè)錯(cuò)誤信息)。

所以高級(jí)語(yǔ)言通常都內(nèi)置了一套try...except...finally...的錯(cuò)誤處理機(jī)制,Python也不例外。

try

讓我們用一個(gè)例子來(lái)看看try的機(jī)制:
代碼如下:
try:
    print 'try...'
    r = 10 / 0
    print 'result:', r
except ZeroDivisionError, e:
    print 'except:', e
finally:
    print 'finally...'
print 'END'

當(dāng)我們認(rèn)為某些代碼可能會(huì)出錯(cuò)時(shí),就可以用try來(lái)運(yùn)行這段代碼,如果執(zhí)行出錯(cuò),則后續(xù)代碼不會(huì)繼續(xù)執(zhí)行,而是直接跳轉(zhuǎn)至錯(cuò)誤處理代碼,即except語(yǔ)句塊,執(zhí)行完except后,如果有finally語(yǔ)句塊,則執(zhí)行finally語(yǔ)句塊,至此,執(zhí)行完畢。

上面的代碼在計(jì)算10 / 0時(shí)會(huì)產(chǎn)生一個(gè)除法運(yùn)算錯(cuò)誤:
代碼如下:
try...
except: integer division or modulo by zero
finally...
END

從輸出可以看到,當(dāng)錯(cuò)誤發(fā)生時(shí),后續(xù)語(yǔ)句print 'result:', r不會(huì)被執(zhí)行,except由于捕獲到ZeroDivisionError,因此被執(zhí)行。最后,finally語(yǔ)句被執(zhí)行。然后,程序繼續(xù)按照流程往下走。

如果把除數(shù)0改成2,則執(zhí)行結(jié)果如下:
代碼如下:
try...
result: 5
finally...
END

由于沒有錯(cuò)誤發(fā)生,所以except語(yǔ)句塊不會(huì)被執(zhí)行,但是finally如果有,則一定會(huì)被執(zhí)行(可以沒有finally語(yǔ)句)。

你還可以猜測(cè),錯(cuò)誤應(yīng)該有很多種類,如果發(fā)生了不同類型的錯(cuò)誤,應(yīng)該由不同的except語(yǔ)句塊處理。沒錯(cuò),可以有多個(gè)except來(lái)捕獲不同類型的錯(cuò)誤:
代碼如下:
try:
    print 'try...'
    r = 10 / int('a')
    print 'result:', r

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 九九热精品免费视频 | 91精品国产乱码久久久久久久久 | 青青草成人影视 | 91重口视频| 好吊色欧美一区二区三区四区 | 久久久久久久.comav | 成人免费毛片一 | 一级做受大片免费视频 | 国产亚洲综合一区二区 | 国产69久久久 | 精品免费久久 | h视频在线观看免费 | 高清做爰免费无遮网站挡 | 精品一区二区三区日本 | 成人免费观看av | 国产日韩欧美 | 一级片999| 国产午夜精品理论片a级探花 | 久久视讯| 欧美3p激情一区二区三区猛视频 | 成人18免费观看 | 亚洲精品在线观看免费 | 久久成人综合视频 | 国产噜噜噜噜久久久久久久久 | 在线看免电影网站 | 亚洲精品午夜电影 | 夏目友人帐第七季第一集 | 人人做人人看 | 免费永久看羞羞片网站入口 | 色中色在线视频 | 中文字幕在线观看二区 | 男女羞羞的视频 | 香蕉视频18| 成人福利在线视频 | 欧美日韩免费观看视频 | 欧美黄色一级生活片 | 亚洲免费片 | 欧美性受xxxx人人本视频 | 中文字幕国 | 国产亚洲精品综合一区91 | 成人国产精品齐天大性 |