반응형
개발을 하다보면 가장 많이 보는 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
'ETC > Error Log' 카테고리의 다른 글
JAVA java.lang.ClassCastException 에러 (0) | 2024.10.31 |
---|---|
웹사이트에서 흔히 겪는 HTTP 에러 코드 (400 에러 등) (0) | 2024.07.29 |