자바 프로그래밍을 하다보면 가장 자주맞닥뜨리는 예외 중 하나가 바로 java.lang.NullPointerException입니다.
이 예외는 객체를 참조할 때 null 값을 갖는 변수를 사용할 때 발생합니다.
예외 발생 원인
- null 값을 갖는 참조변수를 이용하여 객체의 메소드나 멤버변수를 호출할 때
- 배열을 초기화하지 않고 사용할 때
- 객체를 초기화하지 않고 사용할 때
- 선언하지 않은 변수를 사용할 때
- 오타 (왠만하면 툴에서 자동완성으로 확인이 가능하지만 주니어의 경우 확인 못할수도..?)
해결 방법
- null 값을 갖는 참조변수를 이용하는 코드를 수정하여 null 값을 갖지 않도록 한다.
- 배열을 사용하기 전에 반드시 초기화한다.
- 객체를 사용하기 전에 반드시 초기화한다.
- 변수를 선언했는지 확인해본다.
- 오타 검수
예제
다음은 null 값을 갖는 참조변수를 이용하여 객체의 메소드를 호출할 때 발생하는 예외입니다.
public class Example {
public static void main(String[] args) {
String str = null;
System.out.println(str.length());
}
}
위 코드를 실행하면 다음과 같은 예외가 발생합니다.
Exception in thread "main" java.lang.NullPointerException
at Example.main(Example.java:4)
이를 해결하기 위해서는 str 변수가 null 값을 갖지 않도록 다음과 같이 수정합니다.
public class Example {
public static void main(String[] args) {
String str = "Hello World";
System.out.println(str.length());
}
}
위 코드를 실행하면 정상적으로 "11"이 출력됩니다.
그럼 20000
반응형
'IT' 카테고리의 다른 글
[Java] java.lang.ArrayIndexOutOfBoundsException (0) | 2023.05.29 |
---|---|
[Java] java.lang.ClassNotFoundException (0) | 2023.05.24 |
[Java] json to vo (json을 VO객체로) (0) | 2021.12.29 |
[Visual Studio Code] VSCode 자주쓰는 단축키 모음 (0) | 2021.05.06 |
[Node.js] Node Timezone (0) | 2021.04.15 |