O que é Asserção em Java? Como usar asserção em Java

Publicados: 2021-05-20

Índice

O que é Asserção em Java?

A asserção em Java é usada para garantir a correção das suposições de qualquer programa, pois a asserção é considerada verdadeira quando é executada. A Java Virtual Machine gera um erro chamado AssertionError se a asserção for falsa. A asserção em Java encontrou sua aplicação principalmente para fins de teste. Expressões booleanas são usadas junto com declarações de asserção. Uma asserção é uma declaração, e a palavra-chave 'asset' é usada para realizar uma asserção em Java.

Sintaxe

A seguir estão duas maneiras pelas quais a asserção é realizada em Java:

1. expressão assertiva;

2. assert expressão1: expressão2;

Como usar asserção em Java?

As asserções são desabilitadas em Java por padrão. O seguinte comando é usado para habilitá-los:

teste java -ea

(ou)

teste java -enableassertions

em que Test é o nome do arquivo Java.

Aqui está um exemplo para demonstrar a sintaxe da asserção:

teste de classe pública

{

public static void main(String[] args)

{

valor inteiro = 13;

valor assert <= 12 : “Não adolescente”;

System.out.println(“A idade do adolescente é ” + valor);

}

}

Saída

Aqui está um exemplo para a geração de um erro de asserção pela Java Virtual Machine –

teste de classe

{

public static void main(String args[])

{

peso inteiro = 30;

afirmar peso >= 20 : ” Excesso de peso”;

System.out.println("O peso é "+valor);

}

}

Saída

Após habilitar as afirmações,

Saída

Exceção no encadeamento “principal” java.lang.AssertionError: Overweight

Isto é o que parece:

Fonte

Por que usar asserções?

A asserção em Java é usada para:

  • Verifique se as suposições feitas pelo programador estão corretas ou não.
  • Certifique-se de que, se o código parecer inacessível, ele está inacessível.
  • Confirme se as suposições escritas nos comentários estão corretas, por exemplo:

se ((y & 1) == 1)

{ }

else // y deve ser par

{ assert(y % 2 == 0); }

  • certifique-se de que a caixa de comutação padrão não está sendo alcançada
  • verifique o estado do objeto

A asserção em Java é usada no início do método e após a invocação do método.

Onde usar as afirmações?

A asserção em Java é usada em casos condicionais e quando as condições estão no início de qualquer método. Além disso, no caso de argumentos para métodos privados. O código do desenvolvedor fornece argumentos privados e quando o programador precisa verificar suas suposições sobre os argumentos.

Aqui estão algumas situações em que o uso de asserções deve ser evitado:

  1. De acordo com as especificações fornecidas pela Sun Microsystems, a declaração não deve ser usada durante a verificação de argumentos nos métodos públicos porque isso resultaria em exceções de tempo de execução apropriadas, como NullPointerException e IllegalArgumentException.
  2. Ele não deve ser usado como um substituto para mensagens de erro.
  3. Se você não quiser que nenhum erro surja em qualquer situação, pule o uso de asserção.
  4. Não deve ser usado em argumentos de linha de comando.
  5. Se o usuário fornecer erros, asserções não devem ser usadas para verificar argumentos em métodos públicos. Em vez disso, o tratamento de erros deve ser usado.

Como desativar asserções?

Os comandos a seguir são usados ​​para desabilitar a asserção em Java:

java –da Teste

Ou

java – teste de desabilitação

em que Test é o nome do arquivo Java.

Maneiras de usar asserção em Java

Exemplo 1: declaração Java

classe pública Principal {

public static void main(String args[]) {

String[] dias da semana = {“Seg”, “Ter”, “Qua”,”Qui”,”Sex”};

afirmar dias da semana.comprimento == 2;

System.out.println(“Existem ” + dias da semana.comprimento + ” dias da semana em uma semana”);

}

}

Saída

A saída a seguir é obtida quando as asserções são desabilitadas e o programa não apresenta erros de compilação.

Quando as asserções estiverem habilitadas, obteremos a seguinte saída:

Exceção no encadeamento “principal” java.lang.AssertionError

Há outra forma de declaração de afirmação que é a seguinte:

condição assert: expressão;

Essa forma de declaração de asserção tem uma expressão que é passada para o construtor do objeto AssertionError. Se a condição for falsa, essa expressão terá um valor exibido como a mensagem de detalhes do erro. Para ajudar na depuração do problema, o massageado detalhado captura e transmite as informações de falha de asserção.

Exemplo 2: asserção Java com exemplo de expressão

classe pública Principal {

public static void main(String args[]) {

String[] dias da semana = {“Seg”, “Ter”, “Qua”,”Qui”,”Sex”, “Sáb”};

assert weekdays.length == 5: “Existem apenas 5 dias úteis em uma semana”;;

System.out.println(“Existem ” + dias da semana.comprimento + ” dias da semana em uma semana”);

}

}

Saída

Exceção no thread “main” java.lang.AssertionError: Há apenas 5 finais de semana em uma semana

Conforme mostrado no exemplo acima, a expressão é passada para o construtor do objeto AssertionError. Como as asserções são habilitadas e a suposição é falsa, uma mensagem apropriada é exibida quando uma exceção é lançada. A mensagem ajuda a diagnosticar e corrigir o erro que causou a falha da asserção.

Aprenda cursos de engenharia de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

Neste blog, você aprendeu como usar asserções para testar a lógica do programa. Você também aprendeu por que asserções não podem ser usadas como substitutas de exceções e viu situações em que usar uma exceção seria mais eficaz do que o tratamento de exceção.

Se você deseja aprender mais sobre Java e progredir em sua carreira de programação, explore os cursos on-line gratuitos de Java da upGrad, a maior empresa de ensino superior on-line da Índia. Visite upGrad para obter mais informações.

Se você estiver interessado em aprender mais sobre Java, desenvolvimento de software full-stack, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, 9+ projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.

O que é assertiva em Java?

Na linguagem de programação Java, asserção é um método usado para garantir que alguns requisitos sejam seguidos. A falha de asserção em Java é considerada um erro de compilação, ou seja, se houver alguma asserção em seu código, o código não será compilado e você receberá uma mensagem de erro. Esse recurso do Java permite que você proteja seu código contra erros de tempo de execução inesperados ou indesejados. A instrução assert Java permite testar invariantes de seu programa em tempo de execução. Asserções são normalmente usadas para verificar se o código não está entrando em um estado inválido. Em outros idiomas, você pode ver métodos de contrato ou condições pré/pós usadas para esse fim.

Como lidar com exceções em Java?

Uma exceção é um erro de tempo de execução, o que significa que ocorre enquanto o programa está em execução, não durante a compilação. A exceção é lançada quando ocorre um erro e o programa não pode continuar. Você pode manipular exceções de três maneiras diferentes: Ignorar a exceção e permitir que o programa saia. Use a palavra-chave throw para relançar a exceção. Use o bloco try-catch para manipular a exceção. Você pode registrar ou imprimir a exceção e deixar o programa sair. Você pode usar a palavra-chave exit para encerrar o programa. Você pode usar a palavra-chave throw para relançar a exceção. Você pode usar o bloco try-catch para manipular a exceção. Há um bloco catch que aceita a exceção em seu argumento. Há um bloco finally que é executado independentemente de uma exceção ser lançada ou não.

Como o try-catch funciona em Java?

try-catch é um mecanismo em Java que permite definir um escopo no qual você pode lidar com erros de tempo de execução de maneira controlada. Também garante que o fluxo de execução não pare completamente quando um erro for encontrado. try e catch são duas palavras-chave usadas para implementar o tratamento de exceções. Sempre que ocorrer um erro em seu programa, o bloco try será executado e o erro será tratado pelo bloco catch.