업무 관련 개발 작업 도중 이상하게 NullPointerException 을 자주 본 날입니다. 


이런 실수 잘 하지 않는데 너무 많이 봐서... 

그래서 이제 이런 실수 하지 말자고 제 스스로를 채찍질 하려고 글을 남깁니다. 




■ NullPointerException 발생 원인


NullPointerException 이 발생하는 원인은 사용할 객체를 생성 후 인스턴스를 생성하지 않고 null 오브젝트를 사용하려 할 경우 발생 합니다. 

TestObject a = null;
String b = a.getTestResult();
b.toString();

null 을 참조 하여 NullPointerException 이 발생하게 됩니다. 이는 아래와 같이 간단히 객체 생성으로 해결 할 수 있습니다. 

TestObject a = new TestObject();
String b = a.getTestResult();
b.toString();


위와 같이 제대로 선언까지 했는데도 불구하고 NullPointerException 이 발생한다면 참조하는 값인 s.getTestResult() 자체가 Null 인 경우입니다. 

위 코드를 기준으로 봤을때 a.getTestResult() 가 null 이므로 b 값도 null 이고 이 null 값을 toString() 함으로 인해 NullPointerException 이 발생하게 되는 겁니다. 



■ NullPointerException 방어 코드 

NullPointerException 은 자주 발생하면서도 얼마든지 예방이 가능합니다. 

방어 코드를 아래와 같이 넣어 줄수 있습니다. 

TestObject a = new TestObject();
String b = a.getTestResult();
if(b != null) {
b.toString();
}

위 코드와 같이 null 체크를 하는 겁니다. 

null 일 경우 toString 을 하지 않음으로 NullPointerException 을 피할 수 있습니다. 



저도 실수 몇 개로 몇번의 오류를 봤는지 모르겠습니다. ㅠㅠ

이런 실수 하지 않도록 정신 차리고 개발 해야 겠습니다 :)





블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,