關(guān)于異常處理finally的問題
在try catch中,try catch之后的代碼是一定要執(zhí)行的,而try catch finally中,為什么要寫finally呢?直接將finally中的代碼寫在異常處理塊之后,不是一樣會(huì)執(zhí)行嗎?
在try catch中,try catch之后的代碼是一定要執(zhí)行的,而try catch finally中,為什么要寫finally呢?直接將finally中的代碼寫在異常處理塊之后,不是一樣會(huì)執(zhí)行嗎?
2017-01-16
舉報(bào)
2017-01-17
因?yàn)樵趖ry塊中執(zhí)行到a=5/0時(shí)就被catch塊捕獲,并沒有執(zhí)行到return,程序一路執(zhí)行下去感覺并沒有區(qū)別。假如你在catch塊中最后加入return,你會(huì)發(fā)現(xiàn)用finally的依舊執(zhí)行,而直接寫的會(huì)報(bào)錯(cuò),提示無法執(zhí)行。
2017-01-16
通常情況下,一旦方法里執(zhí)行到return語句的地方,程序立即結(jié)束該方法。因?yàn)閒inally塊總會(huì)被執(zhí)行,不管try塊中是否出現(xiàn)異常,不管哪個(gè)catch塊被執(zhí)行,也不管try和catch塊中執(zhí)行了return語句。從而保證一定能回收try塊中打開的物理資源。
2017-01-16
如果沒有異常就不會(huì)執(zhí)行catch塊的內(nèi)容