5 回答

TA貢獻(xiàn)36條經(jīng)驗(yàn) 獲得超15個(gè)贊
樓主你說(shuō)的這句話“當(dāng)try.......catch ?語(yǔ)句補(bǔ)捉到Myexception異常后 ?應(yīng)該會(huì)終止運(yùn)行才對(duì)?。 ?/p>
這里你有一個(gè)理解錯(cuò)誤:如果發(fā)生異常你不捕獲, 程序才會(huì)卡在發(fā)生異常的地方,這里你捕獲了,程序當(dāng)然可以繼續(xù)跑下去啊,否則捕獲異常是為了什么呢?
出紅字是因?yàn)閑.printTrace(); 如果你把這行刪掉或者換成System.out.println(e.getMessage()); 就沒(méi)有紅字異常了
關(guān)于finally: 如果你在try里加一句 int i = 1/0; 他就不會(huì)輸出 操作結(jié)束了,程序會(huì)卡在這行代碼上因?yàn)槟悴](méi)有捕獲除0異常,這個(gè)時(shí)候如果你加了finally在里邊輸出“操作結(jié)束”,重新跑程序可以輸出“操作結(jié)束”了但是還是會(huì)有報(bào)錯(cuò)信息,因?yàn)?finally代碼塊你可以理解為:無(wú)論如何都要做里邊的事

TA貢獻(xiàn)1017條經(jīng)驗(yàn) 獲得超1032個(gè)贊
try{ ????.... ????int?a=2/0;//發(fā)生異常 ????....//得不到執(zhí)行,跳出到catch塊 }catch(Exception?e)//匹配異常 { ????//執(zhí)行異常處理。 }finally { //不管是否發(fā)生異常,finally塊都會(huì)得到執(zhí)行。 } ...//繼續(xù)執(zhí)行以下代碼

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
誰(shuí)說(shuō)try catch 捕獲到異常就會(huì)停止?捕獲到了,因該處理,然后繼續(xù)執(zhí)行,程序才不會(huì)報(bào)錯(cuò),不然跟不加try catch 有什么區(qū)別?

TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超1個(gè)贊

TA貢獻(xiàn)19條經(jīng)驗(yàn) 獲得超6個(gè)贊
樓主你說(shuō)的這句話“當(dāng)try.......catch ?語(yǔ)句補(bǔ)捉到Myexception異常后 ?應(yīng)該會(huì)終止運(yùn)行才對(duì)?。 ?/p>
這里你有一個(gè)理解錯(cuò)誤:如果發(fā)生異常你不捕獲, 程序才會(huì)卡在發(fā)生異常的地方,這里你捕獲了,程序當(dāng)然可以繼續(xù)跑下去啊,否則捕獲異常是為了什么呢?
出紅字是因?yàn)閑.printTrace(); 如果你把這行刪掉或者換成System.out.println(e.getMessage()); 就沒(méi)有紅字異常了
關(guān)于finally: 如果你在try里加一句 int i = 1/0; 他就不會(huì)輸出 操作結(jié)束了,程序會(huì)卡在這行代碼上因?yàn)槟悴](méi)有捕獲除0異常,這個(gè)時(shí)候如果你加了finally在里邊輸出“操作結(jié)束”,重新跑程序可以輸出“操作結(jié)束”了但是還是會(huì)有報(bào)錯(cuò)信息,因?yàn)?finally代碼塊你可以理解為:無(wú)論如何都要做里邊的事
try{
????....
????int?a=2/0;//發(fā)生異常
????....//得不到執(zhí)行,跳出到catch塊
}catch(Exception?e)//匹配異常
{
????//執(zhí)行異常處理。
}finally
{
//不管是否發(fā)生異常,finally塊都會(huì)得到執(zhí)行。
}
...//繼續(xù)執(zhí)行以下代碼

TA貢獻(xiàn)1123條經(jīng)驗(yàn) 獲得超629個(gè)贊
如果try/catch捕獲異常以后就終止運(yùn)行,那和不捕獲有什么區(qū)別,起不到讓程序正常執(zhí)行的作用了。
所以你只是理解錯(cuò)了而已
添加回答
舉報(bào)