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

为什么会出现这种情况?

+0

你可以使用'将String.valueOf(e.getMessage())' –

+0

或者相反,您可以用'Log.e(字符串标签,弦乐味精,Throwable的TR)' –

+0

你的问题是'e.getMessage'返回'null',你不能打印。 如果你想要完整的堆栈跟踪,你也可以使用'Log.getStackTraceStrin(e)'。 – fbwnd

因为当您调用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());