我正在运行一个Java程序,它将BufferedReader
输入解析为分隔字符串以输出到文件。成功从源文件中读取24行并将其保存到目标文件后,我在3
与“读取”配对中收到getMessage()
(使用catch
)方法的错误消息文件“try
。
当我将捕获更改为以下内容时,
catch (Exception e)
{
System.err.println("Error: " + e.getMessage().getClass().getName());
}
catch
会导致Error: java.lang.String
被退回...但没有进一步说明。文件中的错误字符?不正确的铸造? OutOfBounds作为另一条评论建议?如何从这个错误中提取更多信息?
我已经在十六进制编辑器中查看了输入文件,并且行之间没有意外的EOF或空字符,输入数据在十六进制或文本编辑器中按预期显示,我找不到任何有关如何解释的文档3
错误消息,甚至如何确定它是OS还是Java异常。
答案 0 :(得分:5)
请尝试使用e.getMessage()
,而不要使用e.printStackTrace()
。这将显示异常的完整细节,并指出正确的方向。
catch (Exception e)
{
System.err.print("Error: ");
e.printStackTrace();
}
您也可以尝试:
catch (Exception e)
{
System.err.println("Error: " + e);
}