小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

python try語句相關(guān)(try/except/else/finally)

 yydy1983 2019-08-19

1、try - except

作用: 捕獲程序在執(zhí)行時(shí)遇到的異常情況,即一些報(bào)錯(cuò)。什么啥玩意兒沒定義啊,符號又錯(cuò)了啊之類的你懂得。

意義: 因?yàn)槌绦蛟诎l(fā)現(xiàn)某個(gè)錯(cuò)誤時(shí),往往會中斷不再向下執(zhí)行,如下例子說明問題:

很明顯,我們并沒有定義b,  就將它賦值給a, 現(xiàn)在我們運(yùn)行如下:

不出所料提示NameError, 發(fā)現(xiàn)錯(cuò)誤就報(bào)錯(cuò),不再執(zhí)行下面的程序。

現(xiàn)在我們用try/except寫一下:

打?。?/p>

我們從這個(gè)例子可以試著去推測這段代碼的執(zhí)行過程:

(1)先執(zhí)行try代碼塊, 發(fā)現(xiàn)了錯(cuò)誤。

(2)執(zhí)行except代碼塊。

(3)程序向下執(zhí)行。

可能有疑問try block發(fā)現(xiàn)異常前后正常的的部分會被執(zhí)行嗎,可以測試一下:

打?。?/p>

結(jié)論:

 

(1)先執(zhí)行try block, 直到發(fā)現(xiàn)了錯(cuò)誤,不再執(zhí)行異常之后的代碼。

(2)執(zhí)行except block.

(3)向下繼續(xù)。

 

現(xiàn)在已經(jīng)對try/excepy有了感性的了解,接下來拓展它的用法:

簡單來說,在try/except語句中,可以用多個(gè)except.

例子:

這里使用了兩個(gè)except, 可以發(fā)現(xiàn)except 后面跟了SyntaxError, NameError, 這個(gè)我們經(jīng)常見過的兩個(gè)系統(tǒng)報(bào)錯(cuò),當(dāng)然這里可以改成任何系統(tǒng)錯(cuò)誤(參見python標(biāo)準(zhǔn)異常)。執(zhí)行:

可見,當(dāng)try代碼塊執(zhí)行出現(xiàn)異常,在except中匹配到了NameError的異常,則執(zhí)行了對應(yīng)except的語句。

新的疑問,若所有except都沒有匹配呢,測試如下:

我們將NameErro改成了SystemExit,打印:

發(fā)現(xiàn)又回到了開始,說明這樣的try/except等于是廢的。。。

所以避免沒有匹配到異常,又中斷程序,將代碼修改如下:

即又加了一條except, 這條except后面沒有加系統(tǒng)錯(cuò)誤,打印:

OK,get it.

 

2、try-except-else

舉個(gè)例子:

打?。?/p>

可見,有異常時(shí),else block時(shí)不執(zhí)行的。

那,無異常時(shí):

   

打?。?/p>

可見,無異常時(shí)else block執(zhí)行。

至此可以寫出try/except/else的格式

--------------------------------------------------------------------------------

try:

    try block

except ERROR1:

    except ERROR1 block

except ERRPR2:

    except ERROR2 block

            ......

except:

    except block

else:

    else block

-----------------------------------------------------------------------------

當(dāng)然, 這些測試只是看到語句的功能,具體的實(shí)現(xiàn)內(nèi)部原理再說吧, 一開始看那些得把人搞暈。

 

3、try-finally

作用: 無論try語句是否有異常,最后都要執(zhí)行的代碼。

例子:

錯(cuò)是有的,先執(zhí)行完finally block, 然后回到try block報(bào)錯(cuò)。

當(dāng)然 try, except, else, finally是可以全部組合在一起用的。

 

 

PS:實(shí)際上可以自定義異常,這個(gè)需要用到類的知識,以后再說。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多