2013-11-15 35 views
-3

,所以我不知道爲什麼即時得到一個outofbound錯誤在這行出界異常,當列表填充物

  bCountry = countriesList.get(loc); 
在我的菜單IM

要求用戶輸入兩個字母的國家代碼我修剪空格,和隱蔽它爲大寫,因爲整個列表是大寫

然後我沿着代碼作爲arguement通過在構造

public CountryComponent(String bCode) throws IOException 
{ 
    all = false; 
    String aCode = bCode; 

    getData(); 
} 

所述的getData甲基od從csv文件中提取信息並用數據創建對象,然後調用其他方法向對象中添加附加信息

問題是當我去嘗試繪製特定對象時,其他所有內容是罰款

它似乎只是國家代碼從菜單心不是被鍵入列表中被人發現,和IM不知道爲什麼

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1 
at java.util.ArrayList.elementData(ArrayList.java:371) 
at java.util.ArrayList.get(ArrayList.java:384) 
at CountryComponent.paintComponent(CountryComponent.java:204) 

的底線是「紅」色的例外,那裏有一個更大的名單,idk,如果它需要的話。

+0

異常消息說索引是'-1'。無論'countriesList'中有多少物品,這都是無效的。因此例外。使它不是'-1'。也請在將來發布相關代碼,以及有用的信息,例如'countriesList'的大小和'loc'的值(當然,您在異常消息中間接地發佈了後者)。 –

+1

'-1'總是超出範圍。 – nhgrif

+0

http://docs.oracle.com/javase/7/docs/api/java/lang/ArrayIndexOutOfBoundsException.html解釋了ArrayIndexOutOfBoundsException – user1339772

回答

3

你已經設法給我們看了很多代碼,但沒有一個是正確的代碼。還是你有問題是,當你撥打:

bCountry = countriesList.get(loc); 

loc值是-1,這是非法的。

找出爲什麼值爲-1,並解決該問題。

+0

謝謝,答案讓我走上了解決問題的正確思路。我們的類沒有開始學習異常,我不知道-1是什麼意思,我只打印堆棧跟蹤,所以我可以去我的代碼中的哪些行給我的問題。我們的課程並沒有從適當的異常處理和理解捕獲的用法開始,並且可以從內部捕獲的信息中獲得信息 –