Assert

4 respostas
B

Olá a todos tenho uma dúvida…

if ( posicaoValida( frota[i][j] ) == false ) return false;
Isso não é igual a assert posicaoValida(frota[i][j] ): “ERROR”

?

4 Respostas

S

O assert gera um erro. O primeiro código gerava também?

J

Não.

O assert vai lançar um AssertionError e parar sua aplicação. Enquanto o outro vai simplesmente retornar o metodo.

E assertions não devem ser usadas para esse tipo de coisa, dê uma lida no site da Sun sobre assertion, como e quando usa-las.

B

O primeiro saltava uma execução… eu queria que o assert terminasse com uma mensagem de erro mas ele nao termina ele passa a proxima instrução

public boolean colocaFrota(final Coordenada[][] frota) {

assert frota != null;
	
	for (int i = 0 ; i != frota.length; i++ )
	{
		for (int j = 0 ; j != frota[i].length; j++)
		{
			//salta para o procedimento acima para verificar se esta tudo bem
			
				if ( posicaoValida( frota[i][j] ) == false ) {
					
					return false;
				}
		}    
		
		// passa o caracter b e a posição i da frota para o colocaBarco
		char barco = String.valueOf(frota[i].length).charAt( 0); //ele tira o tamanho do frota[i].length
		colocaBarco(frota[i], barco);
	
		
	}
	
	return true;
}

////////////////////////////////////////////////////////////

Esprimentei a trocar o --> if ( posicaoValida( frota[i][j] ) == false ) {

return false;
				}

para : assert posicaoValida( frota[i][j] ):" ERROR";
mas ele nao me faz isso … e da outra maneira salta…

B

Mas o problema é que querem que eu use um assert ali… como faço?

Criado 4 de dezembro de 2006
Ultima resposta 4 de dez. de 2006
Respostas 4
Participantes 3