이번 에러는 인자(argument)가 부적절하다는 이야기입니다.
Exception in thread "main" java.lang.IllegalArgumentException: Invalid argument passed
컴파일은 통과했지만, 실행 중에 논리적으로 잘못된 값이 들어가 발생하는 런타임 예외입니다.
❓ 대표 발생 상황
✅ 1. 음수 사이즈 배열
int[] arr = new int[-1]; // ❌ IllegalArgumentException
✅ 2. null 값 금지인데 null 전달
Objects.requireNonNull(name); // name이 null이면 예외 발생
✅ 3. 포맷 오류
Color.decode("hello"); // ❌ 유효한 색상 코드 아님
✅ 4. 개발자가 직접 던지는 경우
if (age < 0) {
throw new IllegalArgumentException("Age cannot be negative");
}
🛠 해결 방법
- 예외 메시지를 꼼꼼히 읽어보자 (거의 다 말해줌)
- API 문서에서 해당 메서드의 인자 조건 확인
- 값의 범위/형식/널 여부 등 사전 검증 코드 작성
🧩 요약 정리표
상황 | 원인 | 해결법 |
---|---|---|
IllegalArgumentException | 부적절한 인자 전달 | 값 검증, null 체크, API 조건 확인 |
📌 전체 설명 보기
👉 https:/_