Bom dia pessoal,
Hoje vamos falar um pouco sobre assertivas, um assunto que irá ter poucas questões na prova e que podem ajudar na pontuação.
Assuntos
Assertivas
As assertivas são utilizadas para minimizar a quantidade de manipuladores de exceções que nunca vão ocorrer. Vamos ver um exemplo para entender melhor.
if (num >= 0) {
// faz alguma coisa
} else {
System.out.print(“Numero negativo: ” + num);
}
Já que você está tão certo que a variável num sempre será positiva então minimize seu código:
assert(num >= 0);
// faz alguma coisa
Sempre assuma que a condição (num >= 0) será verdadeira, caso contrário será lançada um AssertionError, e como vimos anteriormente, não podemos manipular um Error.
Existem duas formas de declarar as assertivas
1. assert(num >= 0);
2. assert(num >= 0) : “O valor de num eh: “ + num;
Como usar? É preciso ativar?
As assertivas foram adicionadas na versão 1.4 do Java, e para utilizarmos em tempo de execução é necessário ativar. Veja como:
java –ea br.com.certificacao.Teste ou java –enableassertions br.com.certificacao.Teste
e se desejar desativar (já é desativado por padrão):
java -da br.com.certificacao.Teste ou java -disableassertions br.com.certificacao.Teste
Vamos fazer um teste:
1. Crie uma classe MinhaClasseTeste.java no seu diretório home.
public class MinhaClasseTeste {
public static void main(String[] args) {
int num = -3;
assert(num > 0) : “A variavel num eh: “ + num;
System.out.println(“Ok”);
}
}
2. Compile: javac MinhaClasseTeste.java
3. Execute: java -ea MinhaClasseTeste
Resultado: Exception in thread “main” java.lang.AssertionError: A variavel num eh: -3
4. Execute: java -da MinhaClasseTeste
Resultado: Ok
E se depararmos com um código antigo que tinha um atributo chamado assert?
Será necessário compilar a classe usando o seguinte comando:
java –source 1.3 br.com.certificacao.Teste
E se executarmos uma classe com assert, mas utilizando o parâmetro padrão –da?
A JVM simplesmente irá ignorar o comando assert.
Quando devemos usar? (apenas sugestão)
Quando não devemos usar? (apenas sugestão)
assert(chamaMetodo());
public boolean chamaMetodo() {
usuario.ativar(); // altera atributo.
return true;
}
É isso ai pessoal, compartilhem, comentem e estudem!
Escrito por Marcos Oto Picarelli Prado
RSS dos comentários deste post · TrackBack URI
Comente