더북(TheBook)

1.5 조건문에서 NullPointerException 피하기

class Logbook {

    void writeMessage(String message, Path location) throws IOException {
        if (Files.isDirectory(location)) {
            throw new IllegalArgumentException("The path is invalid!");
        }
        if (message.trim().equals("") || message == null) {
            throw new IllegalArgumentException("The message is invalid!");
        }
        String entry = LocalDate.now() + ": " + message;
        Files.write(location, Collections.singletonList(entry),
            StandardCharsets.UTF_8, StandardOpenOption.CREATE,
            StandardOpenOption.APPEND);
    }
}

일반적으로 자바 초보자가 처음 접하는 예외가 NullPointerException입니다. NullPointerExceptionnull을 참조하는 메서드를 호출하거나 속성에 접근할 때 발생합니다. 이러한 문제를 막으려면 메서드 인수가 유효한지 검사해야 합니다. 단, 순서를 올바르게 지켜야죠!

위 코드의 Logbook은 파일에 메시지를 기록합니다. location 인수로 명시한 파일 시스템 내 특정 파일에 로그 메시지를 정리하죠. 메시지가 올바른지 확인해야 하니 매개변수 검증을 수행해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.