상세 컨텐츠

본문 제목

NullPointerException 해결 사례

강의&독학 학습 내용/JAVA

by 라타니 2021. 10. 9. 01:17

본문

열심히 구조개선을 하고서 깃허브에 푸시한 후, 업로드된 코드를 살펴보고 있었다.

오늘은 12시간 정도 컴퓨터를 붙들고 있었기에, 슬슬 체력도 한계에 다다를 쯤이었다.

갑자기 불길한 예감이 들며 눈길이 꽂힌 코드가 있었다.

'member == null', 내가 썼지만 왠지 불길한 느낌이 들었다. 그냥 육감적으로.
브레이크 포인트

하지만 난 한눈에 문제점을 파악할 수 없는 초짜이므로, 우선 실행부터 해보았다.

아...초보자에게 너무한 거 아니냐구

처음엔 진짜 어디서 어떻게 접근해야 할지 감이 안 잡혔다.

그냥 무작정 NullPorinterException에 대해 구글링하면서 여러 포스팅을 훑어봤지만 아무 소용이 없던 그 때,

코난에서만 보던, '파칭!' 하면서 뇌리를 스치는 그 느낌이 왔다.

 

1. break point를 보면 분명 memberRow에서 value를 get하는 도중에 발생한 것이다.

2. 애초에 memberRow의 value들이 null인 경우가 있을텐데, 그 상태로 Member 객체로 생성하면 null로써 변환되지 않을 듯한 느낌이었다(해시맵이 너무 어려워서 이론적으로 정확히는 모르겠다ㅠ).

3. 아무튼 애초에 memberRow.isEmpty() 가 true라면 get을 하지 않고 null을 반환하게끔 하고, 아닐 경우에만 Member 객체에 담으면 어떨까 싶었다.

뭔가 좋은 느낌! 두근두근
끄어어엉 해결!!!

솔직히 원리적으로 풀어서 원인을 파악하고 해결방안을 모색하는 그런 플레이는 하지 못 했다.

하지만 내 육감으로라도 풀어냈으니 뿌듯한 건 사실이다.

코난이 왜 그렇게 살인사건 풀이에 중독이 됐는지 알 거 같다.

 

나중에 또 NPE를 접했을 때에는 좀 더 고수처럼 해결할 수 있도록 열심히 공부해야겠다.

관련글 더보기