Qual a diferença entre throw e throws?

Throw é usado para lançar exceções em tempo de execução, enquanto throws declara que um método pode gerar exceções.

Qual a diferença entre throw e throws?

Em Java, os comandos throw e throws são utilizados no tratamento de exceções, mas possuem funções distintas. Entender essa diferença é essencial para um código seguro e bem estruturado.

1. O que é throw?

O throw é usado para lançar exceções manualmente durante a execução do programa.

public class ExemploThrow {
    public static void verificarIdade(int idade) {
        if (idade < 18) {
            throw new IllegalArgumentException("Idade mínima é 18 anos");
        }
        System.out.println("Acesso permitido");
    }

    public static void main(String[] args) {
        verificarIdade(16);
    }
}

No código acima, throw lança uma IllegalArgumentException caso a idade seja menor que 18.

2. O que é throws?

O throws declara que um método pode gerar uma ou mais exceções, transferindo a responsabilidade do tratamento para quem o chama.

import java.io.*;

public class ExemploThrows {
    public static void lerArquivo() throws IOException {
        FileReader arquivo = new FileReader("arquivo.txt");
    }

    public static void main(String[] args) {
        try {
            lerArquivo();
        } catch (IOException e) {
            System.out.println("Erro ao acessar o arquivo: " + e.getMessage());
        }
    }
}

O throws indica que lerArquivo() pode gerar uma IOException, exigindo que a exceção seja tratada no método chamador (main).

3. Comparação entre throw e throws

Característica throw throws
Uso Lança uma exceção Declara que um método pode lançar exceções
Local de Aplicação Dentro do corpo do método Na assinatura do método
Exemplo throw new Exception("Erro!"); public void metodo() throws Exception
Obrigação de Captura Não exige tratamento imediato Exige tratamento pelo chamador

Conclusão

O throw é utilizado para lançar exceções específicas, enquanto throws indica que um método pode gerar exceções. O uso correto desses conceitos melhora a legibilidade do código e garante um tratamento eficiente de erros.

O uso correto de throw e throws é essencial para aplicações que lidam com validação de dados e manipulação de arquivos. Em sistemas de pagamento, por exemplo, podemos lançar exceções (throw) para evitar transações inválidas, enquanto usamos throws para indicar que um método de processamento pode gerar erros e deve ser tratado pelo chamador.

Algumas aplicações:

  • Validação de entrada de usuários
  • Tratamento de erros em serviços de APIs
  • Controle de exceções em operações bancárias
  • Manipulação segura de arquivos e bancos de dados

Dicas para quem está começando

  • Use throw para lançar exceções específicas dentro do código
  • Utilize throws para indicar que um método pode gerar exceções
  • Combine throws com try-catch para capturar exceções corretamente
  • Evite usar throws em excesso sem um tratamento adequado
  • Prefira lançar exceções específicas em vez de Exception genérica

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Qual a diferença entre throw e throws

Compartilhe este tutorial

Continue aprendendo:

Como criar minha própria exceção personalizada em Java

Exceções personalizadas em Java permitem criar classes próprias de erro para tratar situações específicas no código, melhorando a clareza do tratamento de exceções.

Tutorial anterior

Como capturar múltiplas exceções em um único bloco catch

Em Java, é possível capturar múltiplas exceções em um único bloco catch usando o operador pipe (|), tornando o código mais limpo e eficiente.

Próximo tutorial