🏭 에러공장 9편 - IllegalArgumentException 오류 해결법

이번 에러는 인자(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:/_