English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

//自訂例外類別
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

1 個解答

可能跑到其它的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

fedest.com, questions and answers