2011-04-25 2 views
0

약 2 개월 동안 Eclipse ADT로 작업 해 왔습니다. 그 당시 저는 IP 주소와 포트를 선택하고 그 콤보에 파일을 보낼 수있는 작은 유틸리티가 있습니다. 이 유틸리티는 의도 한대로 작동하지만 잘못된 파일 이름을 입력하면 응용 프로그램이 중지됩니다.유효성 검사 파일에 대한 android 예외가 작동하지 않습니다.

 
@Override 
    public void run() { 
     if (data != null) { 
     this.send(data); 
     } else if (this.file != null) { 
     if (file.exists()) { 
      this.send(file); 
     } else { 
      transferError = new FileNotFoundException("The specified file could not be found"); 
     } 
     } 
    } 


난 하나 또는 다른 던질 것이라는 희망에서 다음을 수행하려고했습니다,하지만 모두 실패입니다. 나는 예외 주위 jockeyed 한

 
public void run() { 
     if (data != null) { 
     this.send(data); 
     } else if (this.file != null) { 
     if (file.exists()) { 
      this.send(file); 
     } else { 
      transferError = new FileNotFoundException("The specified file could not be found"); 
     } 
     }try { 
     throw new Exception("blah blah blah"); 
     } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     } 
    } 

, 나는 내가 다른 장소에 배치했는데, 모두 실패했습니다 위의 하나를 추가했습니다. 다시 말하지만, 저는 이것에 대해 매우 새로운 것이고, 기본적으로 다양한 tcp 클라이언트 코드를 미세하게 처리하고 있습니다. 예외를 올바르게 던지는 방법을 만드는 것 외에도, 왜 첫 번째가 작동하지 않고 왜 당신이 제안한 이유인지 이해할 수 있도록 도와주세요.

답변

0

else 블록에 생성 한 transferError를 던지지는 않습니다. FileNotFoundException이가 확인이 끝난 예외이며, run() 메소드는 어떤 던져 예외를 선언하지 않기 때문에 당신은 아마 그렇게 할 수 없습니다 그러나

throw transferError; 

. 토스트 나 다른 것과 같이 사용자에게 오류를 표시하는 다른 방법을 찾아야 할 것입니다.

던진 예외를 잡기 때문에 두 번째 블록이 작동하지 않습니다.

+0

내 토스트 결과 :

@Override public void run() { try { run(); } catch (FileNotFoundException e) {Toast.makeText(FileSender.this, "The specified File could not be found", Toast.LENGTH_SHORT).show(); } } 
나는 다음과 같은 오류 메시지가 :
 The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (FileSender, String, int) 
가능성이 여기에 토스트 수 없습니다. 다른 사람이 로그 메시지를 사용해야한다고 제안했습니다. 나는이 클래스와 블록을 배워야 할 때 코드를 분쇄하고 있기 때문에 잠시 멈출 수 있습니다. – Humpmonkey

+0

FileSender는 활동입니까? 그렇지 않다면 토스트하기 위해 컨텍스트가 필요할 것입니다. 사용자가 문제에 대해 알고 있다고해도 상관 없으면 로깅도 허용됩니다. – harmanjd

+0

예, 활동입니다. 그러나 다시 한번,이 물건을 배우는 것만으로는 보이지 않는 것들을 고치는 방법을 이해하는 것을 어렵게 만듭니다. 즉, 나는 사용자이기 때문에 로깅에 신경 쓰지 않고 누군가가 문제에 대해 알고 있는지 신경 쓰지 않습니다. 도움이 될 코드로 제안 할 수있는 제안이 있습니까? – Humpmonkey

관련 문제