- RuntimeException:
- RuntimeException 클래스와 그 하위 클래스들은 주로 프로그래머의 실수나 잘못된 프로그램 논리에 기인하는 런타임 시 발생하는 예외를 나타냅니다.
- 컴파일러가 이 예외들을 체크하지 않기 때문에, 코드에서 예외 처리를 강제하지 않습니다. 이는 프로그래머가 명시적으로 이 예외들을 처리하지 않아도 되는 편리함을 제공하지만, 동시에 적절한 처리가 이루어져야 합니다.
- IllegalArgumentException:
- IllegalArgumentException은 주로 메소드에 전달된 인수가 잘못된 경우에 발생합니다. 즉, 메소드의 매개변수로 전달된 값이 허용되지 않는 범위일 때 던져집니다.
- 예를 들어, 메소드가 특정 범위의 값을 요구하는데 그 범위를 벗어난 값을 받으면 이 예외가 발생할 수 있습니다.
- 이 예외는 메소드의 매개변수 유효성을 검사할 때 주로 사용됩니다.
간단히 말해서, RuntimeException은 주로 프로그램 논리와 관련된 문제에 사용되며, 컴파일러가 강제로 예외 처리를 요구하지 않습니다. 반면에 IllegalArgumentException은 주로 메소드에 전달된 인수의 유효성을 검사하는 경우에 사용되며, 메소드 호출 시에 발생할 수 있는 특정한 조건을 나타냅니다.