Dev (Back & Front)ARTIGO

Boas práticas de programação Assert Java

Olá, pessoal!

Hoje vamos falar sobre Assertivas, ou Assert, no JavaJava42 conteúdosNovidades do Java 26 (para desenvolvedores)Dev (Back & Front) · mar 2026Visual Studio Code para Java: o guia completo (dicas, configuração e extensões)Dev (Back & Front) · out 2025Quarkus: Modernizando a linguagem Java para a era da nuvemDev (Back & Front) · nov 2020Ver tudo em Dev (Back & Front) . É um assunto que está na SCJP 5 (ou superior) e que veio fazer diferença na vida do programador Java a partir da versão 1.4. Veremos o porquê.

A partir da versão 1.4, o recurso de Assertivas (Assert) permitirá que você teste suposições
durante o desenvolvimento sem o desgaste de escrever manipuladores para
exceções que se supõem que nunca ocorrerão, depois que o programa tiver saído da
fase de desenvolvimento e for totalmente distribuído.

Se você não quer perder tempo ou trazer impacto ao desempenho do
programa escrevendo um código de manipulação de exceções ou não deseja testes com  IF/else, já que se chegar à condição else significa que a lógica anterior falhou,
então as Assertivas permitem que você
teste suas suposições durante a fase de desenvolvimento. 

Assertivas funcionam de maneira bem simples sempre que você quer ter certeza de que o valor testado jamais vai ser falso,
caso contrário, um error AssertionError (que não é possível manipular) é
lançado.

assert (boolean) : string;

Entre (  ) sempre terá que haver um valor booleano e true,
caso contrário, uma exceção é lançada (AssertionError).

Por padrão, Assert vem desabilitado. Para desfrutar do recurso, é necessário ativá-lo.

01. Compilando

javac  -source 1.5 classe.java

02. Habilita

java ea classe

ou

java enableassertions minhaclasse

03. Desabilita

java da classe

ou

java disableassertions classe

Regras de uso Assert

  • Assertion não
    pode ser usado no lugar do IF;
  • Assertion não
    pode testar métodos públicos ou argumento digitado pelo usuário;
  • Não pode apresentar efeitos colaterais* no programa. Ou
    seja, o seu programa deve rodar tanto com ele habilitado ou não.

Usar Assertivas capazes de causar efeitos colaterais pode levar a alguns dos bugs mais enlouquecedores e difíceis de encontrar (Kathy Sierra, 2006) 

Não é objetivo de Assertivas substituir o uso IF/ELSE, tratamentos de exceções. O uso de Assertivas é no
ambiente de desenvolvimento (debug) e não de distribuição.

Na prática:

class Asert{<br />    private static void setD(int z){<br />        boolean b=true;<br />        assert(z>0):" alguém alterou o valor da linha 3 ";<br />        assert(b=false);<br />        System.out.println(z);    }<br />    public static void main(String args[]){<br />        setD(1);<br />    }}

Outro exemplo:

class Assert{<br />    //usando assertivas   <br />    public static void main(String args[]){       <br />        int taxajuros=4;<br />        assert(taxajuros==2):"algum programador mudou o valor da int taxajuros na linha 6";<br />        System.out.println(true);<br />    }}

Agora basta compilar com Assert, ativar em tempo de
execução e verificar a essência desse recurso. Espero que tenham gostado e
até a próxima!!

é Bacharel em Sistemas de Informação e Especialista em Gestão e Estratégia de Negócios. Trabalha com TI desde 2003 e possui as certificações SCJP 5 e SCM. Trabalhou na IBM Brasil como Analista Programador Java, passou pelo laboratório da Enterprise Computing Lab (ECL) HP como Software Engineer, Ci&amp;T como Engenheiro de Software em projeto JEE. Tem experiência internacional em Índia, Dubai e Londres. Atualmente é cofundador da ITSLabs (www.itslabs.com.br), uma start-up focada na criação de produtos web e mobile para start-ups. Também é autor dos livros "Guia do Exame SCJP", "Guia Prático JEE com Frameworks" e "TDD na prática".

Ver perfil