본문 바로가기
Web Programing/JAVA

NullPointerException 원인 해결하기

by 기록하는 초보 2024. 2. 24.
반응형

웹 개발을 하다보면 여러가지 예외를 만나게 되는데, 객체 지향 프로그래밍 언어인 자바에서 발생하는 가장 흔한 예외 중 하나인 NullPointerEception(NPE)의 원인과 해결 방법, 예방하는 습관과 처리하는 방법에 대해서 알아보겠습니다.

 

NullPointerException의 원인

자바에서는 값이 없음을 나타내기 위해 null을 사용합니다. 변수에 null이 할당되어 있을 때, 변수를 통해 멤버에 접근하려 하면 NullpointerException, 줄여서 NPE는 참조 타입 변수가 null 값을 가리키는 상태에서 해당 변수를  통해 객체의 인스턴스 메서드를 호출하거나 필드에 접근하려 할 때 발생합니다.

String nullString = null;
int len = nullString.length(); // NullPointerException이 발생합니다.

 

NullPointerException 처리 방법

try-catch

필요한 경우 try-catch 블록을 사용해서 명시적으로 예외를 잡고 로그를 남기거나 사용자에게 알림을 줄 수 있습니다.

String text = null;

try {
	int len = text.length(); //NullPointerException 발생
} catch(NullPointerException e) {
	System.out.println("Null 발생!");
};

 

if

필요한 경우 if문을 사용해서 예외가 아닌 경우 실행할 코드와 예외인 경우 실행할 코드를 분리할 수 있습니다.

String text = null;

if(text != null){
	//null이 아닌 경우 실행
}else{
	//null인 경우 실행
}

 

디버깅(Debugging)

스택 추적(stack trace) 통해 NPE의 원인을 찾아내고 코드를 수정합니다. 개발 도구를 활용하여 문제가 되는 부분을 저확히 파악할 수 있습니다.

 

자바를 사용하면서 가장 자주 마주치는 예외 중 하나인 NullPointerException을 피하려면, 코드 작성 시 null 체크와 안전한 객체 사용법을 습관화해야 합니다. 대부분의 경우 NPE는 개발자의 실수로 인해 발생합니다. 따라서 코드 리뷰와 테스트를 통해서 이를 미연에 방지해야 합니다. 전체적인 프로그램의 흐름을 이해하고 객체의 생명 주기를 관리하는 것이 중요합니다.

반응형