Duvida no uso assert

1 resposta
P

Olá pessoal,

usando java 1.5 com Eclipse 3.1

estou tentando entender o uso de assert mas não entendi
sua utilização na pratica conforme exemplo abaixo como lançar
um AssertionError pois rodou e não vi um erro quando cai na situação
que não é verdadeiro :

class A {
	void m1(int i) {
	   	int j = i % 3;
	   	
		switch (j) {
		case 0 :
		     System.out.print("0");
		     break;
		case 1 :
		     System.out.print("1");
		     break;
		default :
		     assert j == 2 ;
		     System.out.print(j);
		}
	}
	public static void main(String[] args){
	   A a = new A();
	   for (int i = 5; i >= -1; i--) {
		   /*System.out.println("for ="+i);*/
    	  a.m1(i);
	   }
	}
}

quando executei de esse resultado :210210-1

porque não caiu na situação do AssertionError essa é minha duvida ???

+++++++++++++++++++++++++++++++++++++++++++++
e vi o resultado que seria o seguinte :

Assertions
i j saida
5 2 2
4 1 1
3 0 0
2 2 2
1 1 1
0 0 0
-1 -1 ?
Com assertions: 210210
seguido de AssertionError
Sem assertions: 210210-1
+++++++++++++++++++++++++++++++++++++++++++++

1 Resposta

S

Rodei aqui e deu exatamente o resultado que você falou.

Você lembrou de habilitar assertions?

<blockquote>C:&gt;java A

210210-1

C:&gt;java -ea A

210210Exception in thread “main” java.lang.AssertionError

at A.m1(a.java:13)

at A.main(a.java:21)</blockquote>
Criado 5 de agosto de 2006
Ultima resposta 5 de ago. de 2006
Respostas 1
Participantes 2