[Java] java.lang.NullPointerException

자바 프로그래밍을 하다보면 가장 자주맞닥뜨리는 예외 중 하나가 바로 java.lang.NullPointerException입니다.

이 예외는 객체를 참조할 때 null 값을 갖는 변수를 사용할 때 발생합니다.

예외 발생 원인

  • null 값을 갖는 참조변수를 이용하여 객체의 메소드나 멤버변수를 호출할 때
  • 배열을 초기화하지 않고 사용할 때
  • 객체를 초기화하지 않고 사용할 때
  • 선언하지 않은 변수를 사용할 때
  • 오타 (왠만하면 툴에서 자동완성으로 확인이 가능하지만 주니어의 경우 확인 못할수도..?)

해결 방법

  • null 값을 갖는 참조변수를 이용하는 코드를 수정하여 null 값을 갖지 않도록 한다.
  • 배열을 사용하기 전에 반드시 초기화한다.
  • 객체를 사용하기 전에 반드시 초기화한다.
  • 변수를 선언했는지 확인해본다.
  • 오타 검수

예제

다음은 null 값을 갖는 참조변수를 이용하여 객체의 메소드를 호출할 때 발생하는 예외입니다.

public class Example {
    public static void main(String[] args) {
        String str = null;
        System.out.println(str.length());
    }
}

위 코드를 실행하면 다음과 같은 예외가 발생합니다.

Exception in thread "main" java.lang.NullPointerException
    at Example.main(Example.java:4)

이를 해결하기 위해서는 str 변수가 null 값을 갖지 않도록 다음과 같이 수정합니다.

public class Example {
    public static void main(String[] args) {
        String str = "Hello World";
        System.out.println(str.length());
    }
}

위 코드를 실행하면 정상적으로 "11"이 출력됩니다.

그럼 20000

반응형