//自訂例外類別
class NotFoundException extends Exception
{
public String getMessage()
{
return "超出陣列索引範圍!";
}
}
class Demo177
{
int[] Ary = {1,2,3,4,5,6,7,8,9};
public void findAry(int idx)throws NotFoundException
{
boolean b=false;
for (int i=0;i
2006-12-08 09:29:37 · 1 個解答 · 發問者 ANDY 2 in 電腦與網際網路 ➔ 程式設計
書上的程式碼就只有這樣
執行結果就顯示"超出陣列索引範圍!"
我的疑問是
執行到這邊throw new NotFoundException();
就跑到了
catch(NotFoundException e)
{
System.out.println(e.getMessage());
}
執行e.getMessage()
public String getMessage()
{
return "超出陣列索引範圍!";
}
然後才會印出超出陣列索引範圍!
2006-12-09 09:32:59 · update #1
突然又發現一個問題那就是e.getMessage()
為什麼可以執行呼叫他
並沒有產生NotFoundException的物件
或是getMessage()方法並不是static
能不能解釋!!
謝謝!!!
2006-12-09 09:33:05 · update #2
for (int i=0;i
if (i==idx)
{
b=true;
System.out.println("陣列Ary[" idx "]=" Ary[idx]);
}
}
拍謝!!我沒注意到耶
我當時是整個複製,怎麼會漏了這個!!
2006-12-10 08:44:34 · update #3
for (int i=0;i
if (i==idx)
{
b=true;
System.out.println("陣列Ary[" idx "]=" Ary[idx]);
}
}
2006-12-10 08:45:06 · update #4
for (int i=0;i
2006-12-10
08:46:03 ·
update #5
可能跑到其它的Exception了
可能不是NotFoundException的異常
就試試看,多加幾個Exception…
搞不好就抓到了= =
因為你的程式碼不完整
我沒辦法try...
2006-12-10 13:09:29 補充:
不然就是PO錯了
for (int i=0;i{
if (i==idx)
{
b=true;
System.out.println("陣列Ary[" idx "]=" Ary[idx]);
}
}
這語法有問題喔
for怎麼回事
2006-12-10 20:46:33 補充:
異常例外你可以用另一種方式去解釋它。
當程式執行到if (b==false){}這個程式區段的時後,
在區段內丟出了例外,throw new NotFoundException();
當丟出例外的時後,JVM就會去找catch{}嘍!!!
throw new NotFoundException();
這一行就建立了例外的物件嘍!!!看到new沒有…
它只是沒有給它參考變數而已
2006-12-08 17:55:16 · answer #1 · answered by ? 2 · 0⤊ 0⤋