IOException异常返回空的GET消息
问题描述:
try {
fis = context.openFileInput("Stores");
ObjectInputStream oi = new ObjectInputStream(fis);
toReturn = (ArrayList<Store>) oi.readObject();
oi.close();
} catch (FileNotFoundException e) {
Log.e("InternalStorage", e.getMessage());
} catch (IOException e) {
Log.e("InternalStorage", e.getMessage());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
我对IOException异常范围创建系统崩溃,说IOException异常返回空的GET消息
java.lang.NullPointerException: println needs a message
为什么会出现这种情况?
答
因为当您调用e.getMessage()时,IOException总是返回null。 发生此异常时尝试记录其他内容。
例如:
StackTraceElement[] stackTraceElements = e2.getStackTrace();
String logMessage = "IOException occured in method "
+ stackTraceElements[0].getMethodName() + " - File name is "
+ stackTraceElements[0].getFileName()
+ " - At line number: "
+ stackTraceElements[0].getLineNumber();
Log.e("InternalStorage", e.getMessage());
你可以使用'将String.valueOf(e.getMessage())' –
或者相反,您可以用'Log.e(字符串标签,弦乐味精,Throwable的TR)' –
你的问题是'e.getMessage'返回'null',你不能打印。 如果你想要完整的堆栈跟踪,你也可以使用'Log.getStackTraceStrin(e)'。 – fbwnd