> Java > java지도 시간 > 본문

Java에서 IllegalArgumentException은 어떤 시나리오에서 발생합니까?

WBOY
풀어 주다: 2023-06-25 10:21:17
원래의
1065명이 탐색했습니다.

중요한 프로그래밍 언어인 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!