중요한 프로그래밍 언어인 Java는 구현 과정에서 많은 예외 처리를 포함하며, 그 중 IllegalArgumentException이 자주 사용되는 예외 유형입니다. 그렇다면 IllegalArgumentException은 언제 발생하나요?
IllegalArgumentException은 불법적이거나 잘못된 매개변수가 메소드에 전달되면 프로그램에서 이 예외가 발생함을 의미합니다. 특히 IllegalArgumentException은 일반적으로 다음 시나리오에서 발생합니다.
1. 매개변수 유형 불일치
매개변수를 메소드에 전달할 때 해당 유형이 메소드에 의해 정의된 형식 매개변수 유형과 일치하지 않으면 IllegalArgumentException이 비정상적으로 발생합니다. 예를 들어, 문자열 유형의 매개변수가 정수 유형의 인수가 필요한 메소드에 전달되면 이 예외가 발생합니다.
샘플 코드:
public class Test { public static void printNumber(int number) { System.out.println(number); } public static void main(String[] args) { String str = "123"; printNumber(str); // 抛出IllegalArgumentException异常 } }
2. 매개변수 값이 불법입니다
때때로 메소드에 매개변수의 값 범위가 지정되어 있으면 전달된 매개변수가 이 범위 내에 있지 않으면 IllegalArgumentException도 발생합니다. 예를 들어, 0보다 크거나 같은 매개변수만 허용하는 메서드에 0보다 작은 정수 매개변수가 전달되면 이 예외가 발생합니다.
샘플 코드:
public class Test { public static void divide(int dividend) { if (dividend < 0) { throw new IllegalArgumentException("参数不合法,除数不能为负数"); } System.out.println(10 / dividend); } public static void main(String[] args) { divide(-2); // 抛出IllegalArgumentException异常 } }
3. Null 포인터 예외
메서드에서 null 값을 허용하지 않지만 null 값을 전달하는 경우 IllegalArgumentException도 발생합니다. 예를 들어 빈 문자열을 허용하지 않는 메서드에 빈 문자열이 전달되면 이 예외가 발생합니다.
샘플 코드:
public class Test { public static void printString(String str) { if (str == null || str.isEmpty()) { throw new IllegalArgumentException("参数不合法,必须为非空字符串"); } System.out.println(str); } public static void main(String[] args) { String str = null; printString(str); // 抛出IllegalArgumentException异常 } }
위 시나리오에서 IllegalArgumentException이 발생하면 try-catch 문을 사용하여 예외를 포착하고 처리하는 것을 고려할 수 있습니다. 동시에 프로그램을 설계할 때 매개변수로 인해 발생하는 예외를 방지하기 위해 매개변수 전송을 표준화해야 합니다.
위 내용은 Java에서 IllegalArgumentException은 어떤 시나리오에서 발생합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!