Como solucionar o erro IllegalArgumentException em Java?

IllegalArgumentException ocorre quando um argumento inválido é passado para um método, violando suas restrições esperadas.

Como solucionar o erro IllegalArgumentException em Java?

O erro IllegalArgumentException ocorre quando um método recebe um argumento inválido, que não atende aos requisitos esperados pelo código. Esse erro é uma exceção não verificada, o que significa que pode ser lançada sem a necessidade de ser declarada no método.

Causas comuns do erro IllegalArgumentException

Passar valores nulos para métodos que não aceitam null. Fornecer números fora do intervalo esperado. Passar strings vazias quando valores obrigatórios são esperados. Utilizar valores incompatíveis para configurações específicas.

Exemplo de erro e solução

Código que gera o erro:

public class Exemplo {
    public static void definirIdade(int idade) {
        if (idade < 0) {
            throw new IllegalArgumentException("A idade não pode ser negativa");
        }
        System.out.println("Idade definida como: " + idade);
    }

    public static void main(String[] args) {
        definirIdade(-5);
    }
}

Correção:

public class Exemplo {
    public static void definirIdade(int idade) {
        if (idade < 0) {
            throw new IllegalArgumentException("A idade não pode ser negativa");
        }
        System.out.println("Idade definida como: " + idade);
    }

    public static void main(String[] args) {
        definirIdade(25);
    }
}

O erro ocorre porque a entrada -5 é inválida, violando a regra do método.

Como evitar IllegalArgumentException?

Valide os argumentos antes de utilizá-los. Utilize Objects.requireNonNull() para evitar valores nulos. Defina intervalos de valores permitidos e faça verificações antes de processar dados.

import java.util.Objects;

public class Exemplo {
    public static void setNome(String nome) {
        Objects.requireNonNull(nome, "O nome não pode ser nulo");
        if (nome.isEmpty()) {
            throw new IllegalArgumentException("O nome não pode ser vazio");
        }
        System.out.println("Nome definido: " + nome);
    }
}

Conclusão

O erro IllegalArgumentException pode ser evitado com validações adequadas antes de processar dados. Ele é útil para garantir que os métodos recebam apenas argumentos válidos, aumentando a segurança e confiabilidade do código.

O erro IllegalArgumentException é amplamente utilizado em bibliotecas e frameworks para garantir que os métodos sejam chamados corretamente. Esse erro impede que valores inesperados causem falhas na execução do programa e ajuda a manter um código mais seguro e previsível.

Algumas aplicações:

  • Garantir que métodos recebam apenas valores válidos
  • Evitar falhas inesperadas durante a execução do programa
  • Implementação de regras de validação em APIs
  • Melhorar a robustez do código em aplicações Java

Dicas para quem está começando

  • Sempre valide os argumentos antes de utilizá-los
  • Evite passar valores nulos para métodos que não os aceitam
  • Utilize Objects.requireNonNull() para evitar NullPointerException
  • Defina mensagens claras ao lançar exceções para facilitar a depuração

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como solucionar o erro IllegalArgumentException em Java

Compartilhe este tutorial

Continue aprendendo:

O que significa NoClassDefFoundError e como resolver

NoClassDefFoundError ocorre quando uma classe compilada não é encontrada em tempo de execução, mesmo que tenha sido encontrada na compilação.

Tutorial anterior

Por que estou recebendo NumberFormatException ao converter uma string para número

NumberFormatException ocorre quando tentamos converter uma string para um número, mas o valor não está no formato adequado.

Próximo tutorial