NullPointerException을 예방하자

이수보🧑🏻‍💻·2022년 1월 18일
0

기타

목록 보기
1/12

NullPointerException

우리가 개발을 하며 흔히 볼 수 있는 에러로 이름부터 알 수 있듯 Null 로 인해 나타나는 에러이다.

위 에러는 자주 보는 에러로 코드의 양이 적을 때는 금방 찾을 수 있기 때문에 대부분 null에 대해 무신경한 경우가 많다.


하지만 만약 코드의 양이 방대하다면 어떨까?

대부분이 null이 발생하는 지점을 쉽사리 발견하지 못할 것이다. 때문에 우린 위 에러를 예방하고 올바른 대처를 해야 한다.

지금부터 NullPointerException를 예방해보자


우선 NullPointerException이 발생하는 이유

- 원인

  • null 객체에서 method를 호출하는 경우

  • null 객체의 필드에 접근하거나 값을 변경하는 경우

  • null 의 길이를 배열처럼 취하는 경우 ex) .size() .length()

  • null 을 throw 하는 경우

  • null 을 통해 동기화 할 경우


기본으로 지켜야할 사항

-기본

  • 변수 초기화 시에 NULL이 없도록 String str = ""; 로 초기화해라

예방 방법

-예방

  • 파라미터 값으로 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


★ 오류 잘 고치는 사람 멋진 사람
★ 예방하는 사람은 더 멋진 사람

0개의 댓글