5 回答

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

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

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

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

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

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