第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java finally塊后的語句是否要執(zhí)行

java finally塊后的語句是否要執(zhí)行

喵喵時光機 2019-01-18 22:20:46
finally快中語句肯定執(zhí)行,finally塊后的語句視情況而定:若是catch中截獲異?;蛘哂挟惓伋?,則不執(zhí)行,這也不完全,例如下邊的例子:package com.jessice.example; public class test { public static void main(String[] args) { new FinallyTest().test(0); System.out.println("------------------"); new FinallyTest().test(1); } } class FinallyTest { public void test(int a) { try { int i = 0 / a; } catch (Exception ex) { System.err.println("程序異常了!"); } finally { System.out.println("執(zhí)行finally!"); } System.out.println("執(zhí)行finally后面的語句!"); } } 結果就是 程序異常了!執(zhí)行finally! 執(zhí)行finally后面的語句! 執(zhí)行finally!執(zhí)行finally后面的語句!
查看完整描述

1 回答

?
長風秋雁

TA貢獻1757條經(jīng)驗 獲得超7個贊

其實你如果理解了try,catch捕獲異常的說法你就知道了,我來給題主分析一下這個代碼的為啥會出現(xiàn)這個結果

1.程序異常了!
2.執(zhí)行finally!
3.執(zhí)行finally后面的語句!
4.執(zhí)行finally!
5.執(zhí)行finally后面的語句!

請注意,題主的代碼中

class FinallyTest {

    public void test(int a) {
        try {
            int i = 0 / a;
            //1.異常捕獲
        } catch (Exception ex) {
            System.err.println("程序異常了!");
        } finally {
            System.out.println("執(zhí)行finally!");
        }
        //line2
        System.out.println("執(zhí)行finally后面的語句!");
    }
}

  1. main方法向test方法中傳遞了a=0
  2. 由于除數(shù)為0,則拋出算數(shù)異常
  3. 由于題主代碼中捕獲了異常,則進入到catch塊中,則打印第一行結果
  4. 執(zhí)行完catch塊后則進入到finally中則執(zhí)行finally語句,則打印底二行結果
  5. 由于異常被catch塊捕獲了之后,則表示程序還是可以正常的執(zhí)行的,則執(zhí)行line2的代碼,打印第句話
  6. main函數(shù)向test方法中傳遞a=1
  7. 由于除數(shù)不為0,則正常執(zhí)行。輸出后面的結果。
總結:finally后面的語句這個分幾種情況
  1. 異常被捕獲:finally代碼正常執(zhí)行并且finally后面正常的代碼還是可以繼續(xù)執(zhí)行
  2. 異常未被捕獲:finally代碼正常執(zhí)行,并將異常向上一層調(diào)用方拋出,但是finally后面正常的代碼不再執(zhí)行
查看完整回答
反對 回復 2019-02-12
  • 1 回答
  • 0 關注
  • 660 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號