2015-01-11 11 views
0

현재 개체의 암호화 및 암호 해독을 실험하고 있지만 읽기 메서드가 선언 될 때마다 EOFException이 발생합니다. 나는 모든 예외를 다루려고하는 내 코드 내에 많은 중복성이있는 것처럼 느껴져서 제거 할 문구를 잡거나 던지거나이 문제를 해결할 수있는 방법을 말할 수 있다면 좋을 것입니다. 감사.SealedObject를 처리하는 동안 런타임 오류가 발생했습니다.

java.io.EOFException은 내 코드에서 (** **) 행을 가리 킵니다. 다른 모든 행은 NetBeans 생성 코드입니다. 다른 클래스에서

public static void readFromBinary() throws IllegalBlockSizeException, EOFException 
{ 
try { 
    BufferedReader br3 = new BufferedReader(new FileReader(noteFileName));  
    if (br3.readLine() != null) { 
     FileInputStream fINoteStream = new FileInputStream(noteFileName); 
     ObjectInputStream oINoteStream = new ObjectInputStream(fINoteStream); 
     while(true){ 
     try{ 
     **SealedObject sObj = (SealedObject)oINoteStream.readObject();** 
     Note note = (Note) sObj.getObject(new NullCipher()); 
     noteList.add(note); 
     } 
     catch(EOFException e){ 
      e.printStackTrace(); 
      break; 
     } 
     catch (IllegalBlockSizeException e){ 
      e.printStackTrace(); 
      break; 
     } 
     catch (BadPaddingException e){ 
      e.printStackTrace(); 
      break; 
     } 
     catch (ClassNotFoundException e){ 
      e.printStackTrace(); 
      break; 
     } 
     } 
     oINoteStream.close(); 
    } 
} 
catch (FileNotFoundException e){ 
    e.printStackTrace(); 
} 
catch (IOException e){ 
    e.printStackTrace(); 
} 
} 
} 

방법 전화 :

try{ 
     DataStorage.readFromBinary(); 
     } 
     catch (IllegalBlockSizeException e) 
     { 
      e.printStackTrace(); 
     } 
     catch (EOFException e) 
     { 
      e.printStackTrace(); 
     } 
+0

가능한 [EOFException - 처리 방법] 복제본 (http://stackoverflow.com/questions/18451232/eofexception-how-to-handle) – Raedwald

답변

0

EOFException는 당신이 입력의 끝 부분에 도착을 의미합니다. 당신은 inout을 닫고 루프에서 벗어나야합니다. 스택 추적을 인쇄 할 필요가 없습니다. 객체 스트림이 작동하는 방식과 마찬가지로 특별히 SealedObject과 관련이 없습니다.

이 예외를 포착하거나 던지고 있는지 여부를 결정해야합니다. 둘 다해서는 안됩니다.