package CAR;public class Test { public ?int test() { int a=10;//除數(shù) int b=100;//結(jié)果 try{ while(a>-1){ a--; b=b+100/a; } } catch(Exception e){ System.out.println("程序出現(xiàn)異常啦?。?!"); ? ?return 555;//我在catch語(yǔ)句中說(shuō)明了了方法的會(huì)返回值 }//這里我刪除了方法的返回值 /*finally{ System.out.println("?。?!"); }*/ } public static void main(String[] args) { Test one=new Test(); int sum=one.test(); System.out.println("哦"+"\t"+sum); }}請(qǐng)問(wèn)為什么還是會(huì)報(bào)錯(cuò),我在刪除了方法的返回值但是我在catch中說(shuō)明了方法的返回值,提示是方法應(yīng)該有一個(gè)int的返回值類型。/
3 回答
已采納

小JAVA
TA貢獻(xiàn)14條經(jīng)驗(yàn) 獲得超6個(gè)贊
除了用來(lái)處理異常的return,你在最后還得寫一個(gè)return,萬(wàn)一程序沒(méi)有異常,必須要有返回值。
點(diǎn)擊展開后面3條

玄機(jī)圣人
TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超1個(gè)贊
catch模塊只有在發(fā)生了異常的時(shí)候才會(huì)執(zhí)行,并不是百分百會(huì)執(zhí)行到你的return 語(yǔ)句,所以程序在編譯的時(shí)候,會(huì)判定你沒(méi)有返回結(jié)果,所以該方法報(bào)錯(cuò)。
當(dāng)然如果你把return 語(yǔ)句放到finally語(yǔ)句,那是會(huì)百分百執(zhí)行,方法不會(huì)有問(wèn)題的
添加回答
舉報(bào)
0/150
提交
取消