2014-04-23 1 views
0

PhoneDirectory 프로그램에 addChangeEntry 메서드를 만들려고합니다.이 함수는 전달 된 이름이 존재하지 않으면 검색하고 디렉터리에 새 항목을 추가하는 것입니다. 연락처가 이미 있습니다. 번호가 업데이트됩니다.PhoneDirectory 프로그램에서 NullPointerException을 처리하는 방법

내 x 값이 null과 같아서 계속 NullPointerExceptions을 얻습니다. 이것을 배우고 난 후에 Exception을 잡아서 처리하려고했지만, 여전히 NullPointerExceptions를 받고 있습니다.

addChangeEntry 코드 : 그것은 현재 프로그램의 내 테스트를 중단 될 때

public String addChangeEntry(String name, String telno) { 
    for (DirectoryEntry x : theDirectory) { 
     try { 
      if (x == null) { 
       Logger logger = Logger.getLogger(ArrayPhoneDirectory.class.getName()); 
       logger.log(Level.WARNING, "User with no name found"); 
       continue; 
      } 

      else if (x.getName().equals(name)) { 
      x.setNumber(telno); 
      return x.getNumber(); 
      } 

      add(name, telno); 
     } 
      catch (Exception ex) { 
     System.out.println("Exception found"); 
     throw ex; 
      } 
     } 
    return null; 

} 

이 예외를 처리하는 방법에 어떤 도움을 많이 감상 할 수있다.

+0

'theDirectory'에 null이 허용되지 않음 – Brian

+0

@staticx 어디에서 선언하겠습니까? –

+0

'theDirectory'를 초기화 했습니까? 왜냐하면 객체가 null이기 때문에 가지고있는 것은 작동해야하지만, 객체를 초기화하지 않았다면 오류가 발생합니다. – Snox

답변

0

귀하의 가정이 사실이고 약 x 인 경우이 문제가 발생할 수 있습니다. 예외가 발생하면 throw ex;에 던져 버리기 때문에 문제가 발생할 수 있습니다. 프로그램을 중지하지 않으려면 코드에서 제거하십시오.

+0

이제 forDirectory가 null 일 수 있다는 느낌이 들었습니다. for 루프에서 일어나는 모든 일은 사용자를위한 Directory 배열 검색입니다. 없음, 예외 발생. 이 소리는 가능합니까? –

+0

그러면 처음에는 theDirectory를 검사하거나'for' 전에'try'를 이동해야합니다 – richard

관련 문제