Duvida no uso assert

4 respostas
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
+++++++++++++++++++++++++++++++++++++++++++++

4 Respostas

rbcunha

Por padrão os asserts são dasabilitados…
Então para seu exemplo ficaria assim:
java -ea A
ou
java -enableassertions A
O Eclipse deve ter uma configuração para habilitar asserts…

Os asserts são utilizados para validar durante o desenvolvimento/testes situações que nunca devem ocorrer…

Por exemplo, caso você tenha um método(privado) que recebe sempre um número positivo podemos utilizar asserts

private void calcula(int a) {
	assert(a>=0);
	.
	.
	.	
}
antraceno

Cara, faz o seguinte: no menu principal vá no menu Run e selecione a opção “Run…”. No canto esquerdo da janela que aparecerá você vai na opção “Java Application” e veja se sua aplicação já está listada lá (se não estiver você clica com botão direito em “Java Application”, seleciona “New” e especifica o projeto e a classe a ser executada). Logo, no lado direito seleciona a aba “Arguments”, e no campo VM arguments escreva: -enableassertions.

Dê um Apply e execute :slight_smile:

Espero ter ajudado

Abração


DavidUser

e no Net Beans?

B

antraceno:
Cara, faz o seguinte: no menu principal vá no menu Run e selecione a opção “Run…”. No canto esquerdo da janela que aparecerá você vai na opção “Java Application” e veja se sua aplicação já está listada lá (se não estiver você clica com botão direito em “Java Application”, seleciona “New” e especifica o projeto e a classe a ser executada). Logo, no lado direito seleciona a aba “Arguments”, e no campo VM arguments escreva: -enableassertions.

Dê um Apply e execute :slight_smile:

Espero ter ajudado

Abração

antraceno Muito obrigado irmão, eu estava apanhando, rsrs, porque não sabia onde era para executar via Eclipse, obrigado mesmo!

Criado 5 de agosto de 2006
Ultima resposta 27 de jan. de 2013
Respostas 4
Participantes 5