2013-10-15 24 views
0

我正在運行一個Java程序,它將BufferedReader輸入分析爲一個分隔字符串以輸出到文件。從源文件成功讀取24行並將它們保存到目標文件後,我在catch中收到3(使用getMessage())方法的錯誤消息,該文件與「讀取文件的下一行」try配對。返回如何以及在哪裏可以解釋從java.lang.String返回的Java錯誤消息「3」?

當我捕捉更改爲以下,

catch (Exception e) 
    { 
     System.err.println("Error: " + e.getMessage().getClass().getName()); 
    } 

catch導致Error: java.lang.String ...但沒有進一步解釋。文件中有錯誤的字符?不正確的鑄造? OutOfBounds作爲另一個評論建議?任何其他想法如何從這個錯誤中提取更多信息?

我已經在十六進制編輯器中查看了輸入文件,行之間沒有意外的EOF或空字符,輸入數據按預期在十六進制或文本編輯器中顯示,並且找不到有關如何解釋的任何文檔一個3錯誤消息,甚至如何確定它是一個操作系統還是Java異常。

+0

我從來沒有聽說過的Java給予無益,您使用的任何庫 –

+1

添加在'e.getClass()是例外的getName()'來。打印的字符串,以便知道它是什麼類型的錯誤。這應該給你更多的信息。 –

+0

這可能是一個數組索引超出綁定異常拋出索引是3? – srkavin

回答

5

而不是使用e.getMessage(),請嘗試使用e.printStackTrace()。這將顯示例外的全部細節,並應指向正確的方向。

catch (Exception e) 
{ 
    System.err.print("Error: "); 
    e.printStackTrace(); 
} 

你還可以嘗試:

catch (Exception e) 
{ 
    System.err.println("Error: " + e); 
} 
+0

'printStackTrace()'方法是無效的類型1,所以你的代碼甚至不會編譯 –

+0

ha好抓,生病修復dat –

+0

後者版本不好,因爲它只會顯示消息(通常是無用的) 。 – Kayaman

相關問題