public Member(String email, String nickname, String passwordHash) {
this.email = Objects.requireNonNull(email);
this.nickname = Objects.requireNonNull(nickname);
this.passwordHash = Objects.requireNonNull(passwordHash);
this.status = MemberStatus.PENDING;
}
Objects.requireNonNull()을 통해서 null 값일 경우에 NPE 예외 던지도록 보강
Intellij Live Template 사용하여 테스트 코드 등록해둠
의미: 메서드에 전달된 인자가 부적절하거나 유효하지 않을 때 발생
예시
Thread.sleep(-1000); // 음수는 허용되지 않음
Integer.parseInt("abc"); // -> NumberFormatException (IllegalArgumentException의 하위 예외)
대표 발생 케이스
의미: 객체의 현재 상태(State) 가 메서드 호출에 부적절할 때 발생
예시
Scanner sc = new Scanner(System.in);
sc.close();
sc.nextLine(); // 이미 닫힌 상태에서 사용 → IllegalStateException
대표 발생 케이스
start()할 때