예명
IllegalArgumentException은 자바에서 잘못된 인수(Argument)가 메서드에 전달되었을 때 발생하는 런타임 예외임
- 주로 메서드나 생성자에 전달된 값이 허용되지 않는 값일 때 사용됨
- 개발자가 코드 작성 중 올바르지 않은 입력을 방지하고 오류를 명확히 전달하기 위해 사용됨
특징
1. 런타임 예외이므로 명시적으로 예외 처리를 강제하지 않음 (unchecked exception)
2. 예외가 발생하는 이유를 명확하게 알리기 위해 메시지와 함께 사용됨
3. 발생 조건: 메서드의 사전 조건(precondition)을 어길 때
| 항목 |
주요 특징 |
| 발생 시점 |
메서드 호출 시 인수가 잘못되었을 때 |
| 메시지 포함 |
가능, 예외의 원인을 명확하게 전달 |
| unchecked 예외 |
명시적 예외 처리 필요 없음 |
| 유용한 상황 |
메서드의 입력값을 검증할 때 |
예시 코드:
public class Main {
public static void setAge(int age) {
if (age < 0) {
throw new IllegalArgumentException("Age cannot be negative.");
}
System.out.println("Age set to: " + age);
}
public static void main(String[] args) {
setAge(25); // 정상 실행
setAge(-5); // IllegalArgumentException 발생
}
}
출력:
Age set to: 25
Exception in thread "main" java.lang.IllegalArgumentException: Age cannot be negative.
비고
1. 런타임 예외 말고는 어떤 예외가 있더라? 이거 배웠는데 잊었어. 다시 공부하자.
2. unchecked exception이 있으면 checked exception도 있나? 이건 그럼 예외처리를 강제하나? 위랑 묶어서 공부하자.
3. 이걸 처리하지 않고 방치하면 어떻게 되지? 궁금
레퍼런스
1. 구글링과 chatGPT, 과거 들었던 강의 메모