🏭 에러공장 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, 자바 오류, 널 참조, 에러공장, 디버깅