본문 바로가기
개발/java

java.lang.nullpointerexception 오류 예방

by 가시죠 2023. 3. 28.
반응형

1. try  ~ catch 문 사용

String name = null;

try {
	if (name.equals("hitomis")) {
    	System.out.println("name is " + name);
    }
} catch (Exception e) {
	System.out.println("Exception!");
}

 

2. 사용전에 null 여부 비교문을 사용

String name = null;

if (name != null) {
    if (name.equals("hitomis")) {
        System.out.println("name is " + name);
    }
}

 

4. 문자열 비교 시 "".equals 문 사용

String name = null;

/* 기존 */
if (name.equals("hitomis")) { // name이 null일 경우 NullPointException 발생!!
    System.out.println("name is " + name);
}

/* 변경 */
if ("hitomis".equals(name) { // name이 null 이라도 Exception 발생 없이 if문 동작 안함
    System.out.println("name is " + name);
}

 

5. toString() 대신 valueOf() 사용

String name = null;

/* 기존 */
System.out.println(name.toString()) // NullPointException 발생 !

/* 변경 */
System.out.println(String.valueOf(name)); // Exception 발생 안함 'null' 출력

 

6. StringUtils 같은 유틸 함수 사용

import org.apache.commons.lang.StringUtils

..

System.out.println(StringUtils.isEmpty(null)); //true
System.out.println(StringUtils.equals("hitomis", null)); //false
System.out.println(StringUtils.equals(null, "hitomis")); //false
System.out.println(StringUtils.indexOf("hitomis", null)); //-1
System.out.println(StringUtils.indexOf(null, "hitomis")); //-1
System.out.println(StringUtils.upperCase(null)); //null

 

7. spring framework일 경우 @NotNull, @NotEmpty, @NotBlank 사용하기

반응형

댓글