NullPointerException 애플리케이션 코드, 다른 참조 API 또는 미들웨어가 다음 조건을 만날 때 JVM에서 발생하는 런타임 예외입니다.
- null 개체의 인스턴스 메서드를 호출하려고 합니다.
- null 개체의 특정 필드에 액세스하거나 수정하려고 합니다.
- null 개체의 길이를 배열로 얻으려고 합니다.
NullPointerException 해결 단계:
- java.lang.NullPointerException 검토 스택 추적 및 예외가 트리거된 위치를 확인합니다(애플리케이션 코드, 타사 API, 미들웨어 소프트웨어 및 라인 추출).
- 애플리케이션 코드에 문제가 있는 경우 코드 검토가 필요합니다. 타사 API 또는 미들웨어에서 문제가 발견된 경우 먼저 참조된 코드를 검토하고 문제의 원인이 간접적일 수 있는지 확인해야 합니다(예:타사 API 메서드에 null 값 전달 등).리>
- 응용 프로그램 코드 내에서 문제가 발견되면 어떤 Object 인스턴스가 null이고 문제를 일으키는지 확인하십시오. null 값의 소스도 이해할 수 있도록 적절한 null 검사 유효성 검사와 적절한 로깅을 추가하려면 코드를 수정해야 합니다.
예시
public class NPEDemo { private String field1 = null; private String field2 = null; public String getField1() { return field1; } private void setField1(String field1) { this.field1 = field1; } public String getField2() { return field2; } private void setField2(String field2) { this.field2 = field2; } public static void main(String[] args) { try { NPEDemo npe = new NPEDemo(); npe.setField1("field1 value"); npe = null; npe.setField2("field2 Value"); } catch (Throwable e) { System.out.println("Java Error is: "+e ); e.printStackTrace(); } } }
출력
Java Error is: java.lang.NullPointerException java.lang.NullPointerException at NPEDemo.main(NPEDemo.java:24)