NullPointException 의 정의
Null 때문에 발생하는 Runtime Exception
왜 NullPointException 가 문제인가...
- null 자체의 의미가 모호해 다양한 파생 에러 발생..(이게 크다.)
- 에러 발생 이후 디버깅이 힘들다..
NullPointException 원인
많은 파생 원인들이 있지만, 핵심적인 것은 한가지이다. JAVA 프로그래밍에서 사용할 객체를 생성한 후에
인스턴스를 생성하지 않은 상태에서 Null 오브젝트를 사용하려고 할때 발생한다.
쉽게 정리하자면, null 값을 생성했는데 내가 그 null 값을 넣을 객체를 만들지 않았다는 것이다.
나의 경우에는 스프링을 통해서 db 에 값을 집어넣어야 했었는데,
1이라는 값이 들어갈 ' c ' 라는 객체를 생성했었다.
하지만 ' c ' 라는 객체는 db 와 연결해주는 mybatis 에 등록되어 있지 않았고
java 에서는 계속 생성되어 있지 않은 ' c ' 라는 값을 참조해서 null 값을 넣으려 했기 때문에
위 에러가 발생한 것이었다.
예방 및 해결 방법
1. null parameter 넘기지 말것
- 최대한 의미없는 null 값을 parameter 로 넘기지 않도록 할것
(즉, 의미없는 null 값이 출력되거나, db에 들어가지 않도록 하는것)
2. null 여부 비교처리 추가
if (a != null){ 특정 값 출력 } 식으로
null 이 들어갈 경우 특정값이 출력되도록 해서 알 수 있도록 하는 방식
3. 내가 생성한 객체에 오타가 있는지 아니면, 객체를 생성하지 않았는지 확인하기
- 의외로 이러한 것때문에 에러가 많이 발생하고 찾는데 시간이 오래 걸린다..
- 나의 경우에는 ' _ ' 언더바 하나 때문에.. null 값이 참조가 안되서 위 에러가 발생했다..
참고 링크