[Java] java.lang.IllegalArgumentException

자바에서 발생하는 예외 중 하나인 java.lang.IllegalArgumentException는 잘못된 인수 값이 메소드에 전달될 때 발생합니다.

  1. 인수 값 확인
    • java.lang.IllegalArgumentException 예외는 주로 메소드에 전달된 인수 값이 잘못된 경우에 발생합니다. 따라서, 이 예외가 발생하는 메소드에서 인수 값을 확인하는 코드를 추가하는 것이 좋습니다.

    • ex)
    public void someMethod(int arg) {
        if (arg < 0 || arg > 10) {
            throw new IllegalArgumentException("Invalid argument: " + arg);
        }
        // 메소드 실행 코드
    }
    
    
    • 위 코드에서는 arg 값이 0보다 작거나 10보다 큰 경우 IllegalArgumentException 예외가 발생합니다.

  2. 유효성 검사 라이브러리 사용
    • 자바에서는 유효성 검사를 위한 다양한 라이브러리가 제공됩니다. 이러한 라이브러리를 사용하여 인수 값의 유효성을 검사할 수 있습니다.

    • 예를 들어서 javax.validation 패키지에서 제공하는 Validator 인터페이스를 사용하여 객체의 유효성을 검사할 수 있습니다.
    public class Person {
        @NotNull
        private String name;
        @Min(0)
        private int age;
        // 생성자, getter, setter 등 생략
    }
    
    public void someMethod(Person person) {
        Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        Set<ConstraintViolation<Person>> violations = validator.validate(person);
        if (!violations.isEmpty()) {
            throw new IllegalArgumentException(violations.toString());
        }
        // 메소드 실행 코드
    }
    
    
    • 위 코드에서는 Person 객체의 name 필드가 null이거나 age 필드가 0보다 작은 경우 IllegalArgumentException 예외가 발생합니다.

  3. 로그 추가
    • IllegalArgumentException 예외가 발생하는 경우에는 로그를 추가하여 원인을 파악하는 것이 좋습니다.

    • ex)
    public void someMethod(int arg) {
        if (arg < 0 || arg > 10) {
            logger.error("Invalid argument: {}", arg);
            throw new IllegalArgumentException("Invalid argument: " + arg);
        }
        // 메소드 실행 코드
    }
    
    
    • 위 코드에서는 arg 값이 0보다 작거나 10보다 큰 경우 IllegalArgumentException 예외가 발생하며, 동시에 로그가 출력됩니다.

잘 해결되시길 바라겠습니다.

그럼 20000

반응형