본문 바로가기

Back/Java

NullPointerException은 언제 발동하는가?

Null 값을 잡기 위해서 catch(NullPointerException) {} 메서드를 이용해봤지만, null 값을 제대로 잡질 못했다.

값이 null이면 발동하는 게 아니었나? 정확한 발동 조건을 찾아봤다.

 

실제로 try 내부 연산으로 null이 변수에 할당될 때 발동하는 것이 아니었다.

null이 할당된 변수를 참조할 때 그 때 NPE가 발생하는 것이었다...!

 

try catch를 사용할 때는 다음을 조심하자.

 

1. null 값을 캐치하려면 if 문을 사용하여 null 값 자체에 대한 예외를 잡자.

2. NPE는 해당 변수를 try 내부에서 할당받아서 연산하는 추가적인 문장이 있을 경우에만 발생한다!