본문 바로가기
ETC/Error Log

NullPointerException error에 대하여

by d-e-v-j 2024. 8. 13.
반응형

개발을 하다보면 가장 많이 보는 error가 NullPointerException 인것 같다.

이름만 들어도 왜 에러가 발생한지 알고 console에 위치도 다 떠 주니깐 찾기도 쉽다.

그래도 기본적인 거니깐 간단히 알아보자


NullPointerException  이란?

객체 참조가 null인데 그 참조로 메서드나 필드에 접근하려고 시도할 때 발생하는 예외

예시

// 객체가 null인 상태에서 메서드를 호출하려고 할 때
String str = null;
int length = str.length(); // 여기서 NullPointerException 발생


//객체가 null인 상태에서 객체의 필드에 접근하려고 할 때
MyObject obj = null;
int value = obj.someField; // 여기서 NullPointerException 발생


// null 요소를 가진 배열의 요소에 접근하려고 할 때
String[] array = new String[10];
array[0] = null;
int length = array[0].length(); // 여기서 NullPointerException 발생


// null을 반환할 수 있는 메서드를 호출하고, 그 결과를 바로 사용하려고 할 때
public String getValue() {
    return null;
}

int length = getValue().length(); // 여기서 NullPointerException 발생


// null로 초기화된 객체를 컬렉션에 추가하려고 할 때 (특정 상황에서)
Map<String, String> map = new HashMap<>();
map.put(null, "value"); // 특정한 상황에서 NullPointerException 발생

 

이렇듯 여러 상황속에서 발생할 수있다.


그렇다면 어떻게 예방 할 수 있는지 알아보자

// null 체크 하기
if (str != null) {
    int length = str.length();
}


// Optional 클래스 사용
Optional<String> optionalStr = Optional.ofNullable(str);
optionalStr.ifPresent(s -> System.out.println(s.length()));


// 초기값 설정하기
String str = "";

 

조금만 신경쓰면 발생하지 않게 할 수 있다.

좀더 꼼꼼하게 코딩해보자.

728x90
반응형
LIST