NullPointerException — 객체가 필요한 곳에 null이 들어왔을 때
NullPointerException — 객체가 필요한 곳에 null이 들어왔을 때
NullPointerException은 애플리케이션이 객체가 필요한 자리에서 null을 사용하려 할 때 던져지는 예외예요. 자바 개발자라면 누구나 한 번쯤 만나는 대표적인 런타임 예외죠.
본문
이 예외가 발생하는 전형적인 상황은 다음과 같아요.
- null 객체의 인스턴스 메서드를 호출할 때
- null 객체의 필드에 접근하거나 수정할 때
- null을 배열인 것처럼
length를 가져올 때 - null을 배열인 것처럼 슬롯에 접근하거나 수정할 때
- null을
Throwable값인 것처럼 던질 때
애플리케이션은 null 객체의 다른 불법적인 사용을 나타내기 위해 이 클래스의 인스턴스를 직접 던질 수도 있어요.
상속 구조는 다음과 같아요.
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.NullPointerException
생성자
NullPointerException()— 상세 메시지 없이 생성해요.NullPointerException(String s)— 지정된 상세 메시지로 생성해요.
메서드
String getMessage()— 이 throwable의 상세 메시지 문자열을 반환해요. 생성자에 null이 아닌 메시지를 넘겼으면 그 값을, 아니면 구현별 메시지나 null을 반환해요.NullPointerException은 명시적 메시지 없이 만들어지면 null 참조의 자세한 설명을 담은 메시지를 만들어 주는데, 역직렬화(deserialization)된 인스턴스에서는 그 내부 정보가 없어 생략돼요.