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

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

請大家?guī)臀铱纯催@個問題

請大家?guī)臀铱纯催@個問題

月亮島Superman 2017-04-11 11:03:57
我想問下我這個程序 ?為什么會輸出 ? 操作結(jié)束try ?{}catch( ? ?){} ? ? ? ?當try.......catch ?語句補捉到Myexception異常后 ?應該會終止運行才對??!? ? ? ?除非在后面加上 ?finally ?{“操作結(jié)束‘}才可以輸出 ? ?這里為什么會輸出”操作結(jié)束“ ???
查看完整描述

5 回答

已采納
?
frece

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代碼塊你可以理解為:無論如何都要做里邊的事


查看完整回答
2 反對 回復 2017-04-11
  • 月亮島Superman
    月亮島Superman
    如果我在try{}語句中添加三個可能出現(xiàn)異常的語句呢 try{ 可能異常代碼1; 可能異常代碼2; 可能異常代碼3; }catch(Exception e){ 處理異常1{}; 處理異常2{}; 處理異常3{}; } 假設我1,2,3中都會出現(xiàn)異常,,,執(zhí)行到try中的 可能異常代碼1 然后交給catch中的處理異常1中 當這個異常處理完成之后呢? 是繼續(xù)回到try中運行 代碼2??還是這段try....catch 代碼運行結(jié)束?
  • 月亮島Superman
    月亮島Superman
    如果你在try里加一句 int i = 1/0; 他就不會輸出 操作結(jié)束了,程序會卡在這行代碼上因為你并沒有捕獲除0異常 主要對這句不理解 就例如下面這個程序 public class Exercise { public static void main(String[] args) { int a[] = {1,2,3}; boolean hasExseption = false; try { a[3] = 4; int i = 1/0; }catch(Exception e){ System.out.println("數(shù)組越界"); hasExseption = true; } if(hasExseption) { System.out.println("程序異常運行結(jié)束"); }else { System.out.println("程序正常運行結(jié)束"); } } } 例如這個程序 當處理完成 a[3]=4;這個異常后 會繼續(xù)執(zhí)行下面的if判斷代碼,當if判斷代碼執(zhí)行完畢后 這個程序也就結(jié)束了對吧,就不會處理int i = 1/0;這個異常了把
  • frece
    frece
    第一個問題,如果你的程序有3個地方會發(fā)生異常,他跑到第一個異常的時候就會跳到catch,catch也只能捕獲這一個異常,不會處理其他的,處理完之后 會繼續(xù)跑catch之后的內(nèi)容。 第二個問題,抱歉我表達可能有些問題, 如果try里發(fā)生的異常你沒有捕獲,他會在錯誤代碼那里拋異常,不是卡住不動。 這個問題: 當處理完成 a[3]=4;這個異常后... 程序跑到這會發(fā)生數(shù)組越界異常,然后會跳到catch找你有沒有捕獲這個異常,如果沒捕獲的話程序還是會拋紅字異常,如果捕獲了就會繼續(xù)執(zhí)行,這里你用Exception捕獲的所以不會有問題, 你的if判斷是在catch之后的,執(zhí)行完之后當然程序就直接結(jié)束了,程序怎么可能倒著跑╮(╯▽╰)╭ 你的代碼我給你改了一下,你跑四次, 第一次直接跑, 第二次注釋 a[3] = 4; 這一行, 第三次注釋 a[3] = 4; int i = 1/0; 這兩行, 第四次注釋 a[3] = 4; int i = 1/0; 這兩行 還有 catch(Exception e){ 這個代碼塊 看看結(jié)果應該就能理解上邊說的內(nèi)容了 public static void main(String[] args) { int a[] = {1,2,3}; boolean hasExseption = false; try { a[3] = 4; int i = 1/0; String str = ""; str = null; int l = str.length(); } catch(ArrayIndexOutOfBoundsException e){ System.out.println("數(shù)組越界"); hasExseption = true; } catch(ArithmeticException e){ System.out.println("除零異常"); hasExseption = true; } catch(Exception e){ System.out.println(e.getMessage()); hasExseption = true; } if(hasExseption) { System.out.println("程序異常運行結(jié)束"); }else { System.out.println("程序正常運行結(jié)束"); } } 注意:如果使用 System.out.println(e.getMessage()); 這種方式查看異常,最后控制臺打出 “null”的時候,是空指針異常
?
望遠

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

try{
????....
????int?a=2/0;//發(fā)生異常
????....//得不到執(zhí)行,跳出到catch塊
}catch(Exception?e)//匹配異常
{
????//執(zhí)行異常處理。
}finally
{
//不管是否發(fā)生異常,finally塊都會得到執(zhí)行。
}
...//繼續(xù)執(zhí)行以下代碼


查看完整回答
2 反對 回復 2017-04-11
  • 望遠
    望遠
    寫錯了finally塊都會得到執(zhí)行。
?
Gatico

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

誰說try catch 捕獲到異常就會停止?捕獲到了,因該處理,然后繼續(xù)執(zhí)行,程序才不會報錯,不然跟不加try catch 有什么區(qū)別?

查看完整回答
1 反對 回復 2017-04-12
?
HansonQ

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

你捕獲了,就會繼續(xù)執(zhí)行!


查看完整回答
1 反對 回復 2017-04-11
?
奪命小書生

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í)行以下代碼


查看完整回答
反對 回復 2017-04-12
?
Caballarii

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

如果try/catch捕獲異常以后就終止運行,那和不捕獲有什么區(qū)別,起不到讓程序正常執(zhí)行的作用了。

所以你只是理解錯了而已

查看完整回答
1 反對 回復 2017-04-11
  • 5 回答
  • 0 關(guān)注
  • 1713 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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