티스토리 뷰

새로운 개발을 시작할 때 가장 자주 발생하는 NullPointException(NPE) 에러의 발생 원인과 해결 방법까지 정리합니다. 더 나아가 소스 코드의 품질을 향상하기 위한 NPE 예방법까지 소개합니다. NPE는 여러 상황에서 발생하는 만큼 경험을 통해 미리 에러가 발생하지 않도록 오류를 피할 수 있는 코딩 연습을 해야 합니다.

 

 

NullPointException(NPE) 발생 원인

 

NPE는 자바뿐만 아니라 다양한 개발 언어에서 심심찮게 발생하는 에러입니다. 여러 상황에서 NPE가 생길 수 있지만 대부분 객체가 제대로 생성되지 않았을 때 발생하게 됩니다. 여기서 객체가 제대로 생성되지 않았다는 것은 VM에서 해당 주소를 찾았을 때 아무런 값(Null)도 없었다는 의미입니다.

 

 

NullPointException(NPE) 해결 방법

 

사실 NPE 문제가 발생하면 에러 위치를 찾기 매우 어려워 디버깅 시간이 상당히 소요됩니다. 따라서 NPE가 생기기 전에 문제가 발생하지 않도록 미리 예방하는 것이 중요합니다.

 

1. String 객체라면 toString() 대신 valueOf()를 사용해보자. System.out.println(a.toString()); 대신 System.out.println(a.valueOf()); 로 코딩한다면 NPE를 피할 수 있습니다.

2. Apache Commons의 StringUtils를 적극 사용합니다. org.apache.commons.lang.StringUtils에는 유용한 기능이 많습니다.

 

3. 가장 많이 사용하는 방법은 null 여부 비교 처리를 추가하는 방법입니다. 간단하면서도 모든 개발자들이 빠르게 이해할 수 있습니다.

String comet = null; 
if(comet != null){ 
	System.out.println(comet.indexOf("참"));
}

 

댓글
반응형