亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么會報錯呢?怎么處理呢?

package qqq;


public class Merry {



public ? static void ? divide(int a,int b)throws Exception{

if (b==0) {

throw new Exception("除數不能為零");

}

else{System.out.println("兩數相除,商為:"+a/b);}

}


public static void main(String[] args) {

// Merry merry=new Merry();

Merry.divide(10, 2);

}


}

然后運行的結果是:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:?

Unhandled exception type Exception


at qqq.Merry.main(Merry.java:17)

我一直想不明白,求解答。

正在回答

5 回答

不好意思“調用e.方法”能不能詳細說說……(我是真的小白

嗯可是我覺得,就目前來看這個divide方法只負責拋出異常,本身沒有處理異常的功能。不知道你的想法是不是下面這樣:

public void test(int a,int b) {
??????try {
???????????Merry.divide(a, b);
??????}catch(Exception e) {
???????????System.out.println("除數不能為零");
??????}
?}
?
?public static void main(String[] args) {
??????Merry merry=new Merry();
??????merry.test(10, 2);
?}

就是再寫一個帶參的test方法,這個方法調用divide方法,并且可以解決它拋出的異常,然后main直接調用test方法。

0 回復 有任何疑惑可以回復我~
#1

慕蓋茨7528959

啊我是上面那層的,忘記直接點回復了(囧
2017-07-27 回復 有任何疑惑可以回復我~
#2

滴滴滴滴滴 提問者

嗯,我也小白,打算自學。 我說的那個e.print方法,打印一異常位置。 就是你說的這種樣子。我是延續上一個教學視頻想自己寫出完整的方法。
2017-07-27 回復 有任何疑惑可以回復我~

我雖然是小白但是姑且說一下我的想法哈~這個意思應該是說在main里面調用的divide方法可能會拋出異常,但是你沒有寫拋出了異常之后要如何處理的方法,也就是沒有寫try-catch,所以如果main寫成

public static void main(String[] args) {

????try {

????????Merry.divide(10, 0);

????}catch(Exception e) {

????????System.out.println("除數不能為零");

}

}

應該就可以了。

不過我還不太清楚Exception(“除數不能為零”)這里面的字符串參數有什么用,望交流指點呀!~


0 回復 有任何疑惑可以回復我~
#1

滴滴滴滴滴 提問者

參數是想如果報錯,調用方法。書寫出哪一行出錯。
2017-07-27 回復 有任何疑惑可以回復我~
#2

慕蓋茨7528959 回復 滴滴滴滴滴 提問者

謝謝解答!但是,如果我上面寫的代碼里面在catch里不寫 System.out.println("除數不能為零");的話就沒有任何輸出信息呀……是我哪里搞錯了嗎?
2017-07-27 回復 有任何疑惑可以回復我~
#3

滴滴滴滴滴 提問者

加一個調用e.的方法。 我本來是想寫一個帶參數的方法,方法中包含異常處理方法,再main入口直接調用,可是現在這樣的話,方法中的異常處理就沒有用了呀。
2017-07-27 回復 有任何疑惑可以回復我~
public?static?void??ivide(int?a,int?b)throws?Exception{
????if?(b==0)?{
????????throw?new?Exception("除數不能為零");
????}
????else{
????????System.out.println("兩數相除,商為:"+a/b);}
????????throw?new?Exception();
????}

public?static?void?main(String[]?args)?{
????divide(10,?2);
}

b==0 ? 不等于零你是要拋出異常的。 ?你想要捕獲異常,然后輸出中文的異常,不是這么搞的。

public?static?double?divide(int?a,?int?b){
		try?{
			return?a/b;
		}?catch?(Exception?e)?{
			if(b?==?0){
				System.out.println("除數不能為零!");
			}else{
				e.printStackTrace();
			}
			return?0D;	
		}
	}
	
	public?static?void?main(String[]?args)?throws?Exception?{
		
		System.out.println(divide(10,?2));
	}


0 回復 有任何疑惑可以回復我~

Unhandled exception type Exception

0 回復 有任何疑惑可以回復我~
#1

滴滴滴滴滴 提問者

什么意思呢?我想知道是哪里出問題了。
2017-07-26 回復 有任何疑惑可以回復我~

也就時在主方法調用那一行

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409767    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

為什么會報錯呢?怎么處理呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號