為什么會報錯呢?怎么處理呢?
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)
我一直想不明白,求解答。
2017-07-27
不好意思“調用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方法。
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(“除數不能為零”)這里面的字符串參數有什么用,望交流指點呀!~
2017-07-26
b==0 ? 不等于零你是要拋出異常的。 ?你想要捕獲異常,然后輸出中文的異常,不是這么搞的。
2017-07-26
Unhandled exception type Exception
2017-07-26
也就時在主方法調用那一行