NullPointerException
우리가 개발을 하며 흔히 볼 수 있는 에러로 이름부터 알 수 있듯 Null 로 인해 나타나는 에러이다.
위 에러는 자주 보는 에러로 코드의 양이 적을 때는 금방 찾을 수 있기 때문에 대부분 null에 대해 무신경한 경우가 많다.
하지만 만약 코드의 양이 방대하다면 어떨까?
대부분이 null이 발생하는 지점을 쉽사리 발견하지 못할 것이다. 때문에 우린 위 에러를 예방하고 올바른 대처를 해야 한다.
지금부터 NullPointerException를 예방해보자
우선 NullPointerException이 발생하는 이유
- 원인
null 객체에서 method를 호출하는 경우
null 객체의 필드에 접근하거나 값을 변경하는 경우
null 의 길이를 배열처럼 취하는 경우 ex) .size() .length()
null 을 throw 하는 경우
null 을 통해 동기화 할 경우
-기본
예방 방법
-예방
파라미터 값으로 null 값을 넘겨주는 일이 없도록 하자
null 방어 로직 ex) if(변수 ==null) 을 짜놓는다고 해도, 의미 없는 null은 넘기지 말아야 한다.
이 경우 null로 인해 파생 오류 발생의 위험이 높다.
null 이 발생할 수 있는 변수는 equlas() 를 사용 자제. null이 들어오면 null은 equals라는 메소드가 없기 떄문
꼭 써야하는 경우 반대로 사용
ex)
String a = "null";
if ("비교할 값".equals(a))
변환하여 사용할 때 null이 들어올 수 있는 변수는 toString 보단 valueOf를 사용하자
ex)
String a = 1;
toString() 사용 시 ->
System.out.println(a.toString());
a 에 null 이 오는 경우 오류 발생
valueOf() 사용시 ->
System.out.println(a.valueOf());
결과 : null
★ 오류 잘 고치는 사람 멋진 사람
★ 예방하는 사람은 더 멋진 사람