乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       yydy1983 2019-08-19

      1、try - except

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

      意義: 因為程序在發(fā)現(xiàn)某個錯誤時,往往會中斷不再向下執(zhí)行,如下例子說明問題:

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

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

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

      打?。?/p>

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

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

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

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

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

      打?。?/p>

      結(jié)論:

       

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

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

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

       

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

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

      例子:

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

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

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

      我們將NameErro改成了SystemExit,打?。?/p>

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

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

      即又加了一條except, 這條except后面沒有加系統(tǒng)錯誤,打?。?/p>

      OK,get it.

       

      2、try-except-else

      舉個例子:

      打?。?/p>

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

      那,無異常時:

         

      打?。?/p>

      可見,無異常時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

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

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

       

      3、try-finally

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

      例子:

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

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

       

       

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多