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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

請(qǐng)大家?guī)臀铱纯催@個(gè)問(wèn)題

請(qǐng)大家?guī)臀铱纯催@個(gè)問(wèn)題

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

5 回答

已采納
?
frece

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ú)論如何都要做里邊的事


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

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


查看完整回答
2 反對(duì) 回復(fù) 2017-04-11
?
Gatico

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

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

查看完整回答
1 反對(duì) 回復(fù) 2017-04-12
?
HansonQ

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

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


查看完整回答
1 反對(duì) 回復(fù) 2017-04-11
?
奪命小書(shū)生

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


查看完整回答
反對(duì) 回復(fù) 2017-04-12
?
Caballarii

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

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

所以你只是理解錯(cuò)了而已

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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