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.
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
publicclassAssertExample{publicstaticvoidmain(String[] args){
int x =5;
assert x >0;
System.out.println("Assertion passed, x is greater than 0");}}Tecnologia
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
publicclassAssertWithMessage{publicstaticvoidmain(String[] args){
int y =-1;
assert y >=0:"y should be non-negative";
System.out.println("Assertion passed, y is non-negative");}}Tecnologia
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
publicclassEnableAssertions{publicstaticvoidmain(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");}}Tecnologia
Para ativar as asserções, execute o programa com o sinalizador -ea (enable assertions):
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.
publicvoidsetAge(int age){if(age <0){thrownewIllegalArgumentException("Age cannot be negative");}this.age = age;}Tecnologia
A palavra-chave
assertem 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á umAssertionError. Normalmente, as asserções são usadas para validar invariantes e suposições internas.Sintaxe
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
Neste exemplo, a asserção verifica se
xé maior que 0. Sexnão fosse maior que 0, você receberia umAssertionError.Exemplo 2: Asserção com mensagem
Este exemplo inclui uma mensagem com a afirmação. Se
ynão for maior ou igual a 0, a mensagem "y should be non-negative" (y deve ser não negativo) será exibida junto comAssertionError.Exemplo 3: Ativação de asserções
Para ativar as asserções, execute o programa com o sinalizador
-ea(enable assertions):Se as asserções não estiverem ativadas, a asserção será ignorada e o programa será executado normalmente.
Dicas e práticas recomendadas
Equívocos comuns