🏭 에러공장 6편 - NullPointerException (NPE) 오류 해결법

🏭 에러공장 6편 - NullPointerException (NPE) 오류 해결법

이번 에러는 모든 자바 개발자의 숙명!
프로젝트가 잘 돌아가다가도 갑자기 프로그램이 종료되면서 다음과 같은 메시지를 뿜습니다:

Exception in thread "main" java.lang.NullPointerException
    at com.koyn.MyApp.main(MyApp.java:14)

❓ 왜 발생하는가?

null 값을 참조한 객체에서 필드나 메서드를 호출했기 때문입니다.

예시:

String text = null;
int len = text.length();  // ❌ 여기서 NPE 발생

🛠 해결 방법

✅ 1. null 체크하기

기본이지만 가장 효과적인 방법입니다.

if (text != null) {
    System.out.println(text.length());
}

✅ 2. Optional 사용 (Java 8+)

안전하게 null 값을 감싸는 도구입니다.

Optional name = Optional.ofNullable(getName());
name.ifPresent(n -> System.out.println(n.length()));

✅ 3. 객체를 new로 초기화하기

기본 타입 배열이나 참조 타입은 new로 생성하지 않으면 null입니다.

String[] items = new String[5];
items[0] = "hello";
System.out.println(items[0].length());  // ✅ OK

✅ 4. stack trace로 null 원인 추적

예외 메시지의 줄 번호와 클래스명을 확인하고, 해당 줄의 변수가 null인지 추적합니다.

Tip:

System.out.println("text = " + text);

🧩 요약 정리표

상황 원인 해결법
NullPointerException null 참조 객체에서 필드/메서드 호출 null 체크, Optional 사용, new로 초기화

📌 전체 설명 보기

👉 https://koynalpha-dev.tistory.com/entry/error6


🏷️ 추천 태그

Java, NullPointerException, NPE, Exception in thread main, 자바 오류, 널 참조, 에러공장, 디버깅