Pular para o conteúdo principal
Documentos
Palavras-chave JavaMatrizes JavaProgramação orientada a objetos em JavaManuseio de arquivos JavaIntrodução ao JavaNoções básicas da linguagem Java

Palavra-chave assert em Java

A palavra-chave assert em Java é usada para fins de depuração. Ele permite que os desenvolvedores testem suposições sobre seu código. As asserções podem ser ativadas ou desativadas quando o programa é executado, o que as torna uma ferramenta flexível para capturar e diagnosticar erros durante o desenvolvimento.

Uso

A palavra-chave assert é usada para criar uma asserção, que é uma afirmação que você acredita ser verdadeira em um determinado ponto do código. Se a afirmação for falsa, o tempo de execução do Java lançará um AssertionError. Normalmente, as asserções são usadas para validar invariantes e suposições internas.

Sintaxe

assert expression;
assert expression : message;
  • expression: Uma expressão booleana que você espera que seja verdadeira.
  • message: Uma mensagem de erro opcional que será exibida se a asserção falhar.

Exemplos

Exemplo 1: Afirmação básica

public class AssertExample {
    public static void main(String[] args) {
        int x = 5;
        assert x > 0;
        System.out.println("Assertion passed, x is greater than 0");
    }
}

Neste exemplo, a asserção verifica se x é maior que 0. Se x não fosse maior que 0, você receberia um AssertionError.

Exemplo 2: Asserção com mensagem

public class AssertWithMessage {
    public static void main(String[] args) {
        int y = -1;
        assert y >= 0 : "y should be non-negative";
        System.out.println("Assertion passed, y is non-negative");
    }
}

Este exemplo inclui uma mensagem com a afirmação. Se y não for maior ou igual a 0, a mensagem "y should be non-negative" (y deve ser não negativo) será exibida junto com AssertionError.

Exemplo 3: Ativação de asserções

public class EnableAssertions {
    public static void main(String[] args) {
        int z = 10;
        assert z < 5 : "z should be less than 5";
        System.out.println("This line will not execute if assertion fails");
    }
}

Para ativar as asserções, execute o programa com o sinalizador -ea (enable assertions):

java -ea EnableAssertions

Se as asserções não estiverem ativadas, a asserção será ignorada e o programa será executado normalmente.

Dicas e práticas recomendadas

  • Uso para invariantes internas: Use asserções para verificar invariantes internas e suposições dentro do seu código, não para validação de entrada do usuário ou outras verificações externas.
  • Ativar durante o desenvolvimento: Ative as asserções durante o desenvolvimento e os testes para detectar bugs com antecedência. Eles podem ser desativados na produção por motivos de desempenho.
  • Não use para efeitos colaterais: Evite usar asserções para efeitos colaterais, pois elas podem ser desativadas no tempo de execução. O programa não deve depender de asserções para executar tarefas críticas.
  • Forneça mensagens significativas: Ao usar asserções com mensagens, forneça mensagens significativas e descritivas para facilitar a depuração.
  • Evitar em métodos públicos: Evite usar asserções em métodos públicos para verificação de argumentos; em vez disso, use exceções.

Equívocos comuns

  • Asserções na produção: Há um equívoco comum de que as asserções devem ser usadas no código de produção. As asserções são principalmente uma ferramenta de desenvolvimento e geralmente devem ser desativadas na produção para evitar problemas de desempenho.
  • Asserções vs. Exceções: As asserções não substituem as exceções. Use exceções para o tratamento de erros, especialmente para argumentos de métodos públicos e validação de entrada do usuário.
public void setAge(int age) {
    if (age < 0) {
        throw new IllegalArgumentException("Age cannot be negative");
    }
    this.age = age;
}

Learn Java Essentials

Desenvolva suas habilidades em Java desde o início e domine os conceitos de programação.
Comece a aprender de graça