2016-12-05 8 views
0
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(); 
} 

null을 반환?는 IOException이는 <p><code>java.lang.NullPointerException: println needs a message</code></p> <p></p> 왜이 일어날 것이라고 말하고, 나는 IOException이 범위에 crashlog을 GET 메시지

+0

당신이 사용할 수있는'한 String.valueOf (e.getMessage())' –

+0

또는 대신 당신은 Log.e (문자열 태그, 문자열 MSG, Throwable를 TR)' –

+0

'사용할 수 있습니다 당신이 가진 문제는'e.getMessage'가'null'을 리턴하고 그것을 인쇄 할 수 없다는 것입니다. 전체 스택 추적을 원한다면'Log.getStackTraceStrin (e)'를 사용할 수도 있습니다. – fbwnd

답변

0

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());