Mais uma pergunta

1 resposta
R

Considere que o código compile e execute corretamente e que assert está abilitada,
qual a saída e a explicação?

public class AssertTest {

	private void methodA(int i){
		
		assert i>=0 :methodB();
		System.out.println(i);
	}
	
	private String methodB(){
		return "The value most not negative";
	}
	
	public static void main(String[] args) {
		
		AssertTest a = new AssertTest();
		a.methodA(-10);
	}
	
}

A - print -10
B - The value most not negative

1 Resposta

T

A saída é:

Exception in thread "main" java.lang.AssertionError: The value most not negative

        at AssertTest.methodA(AssertTest.java:6)
        at AssertTest.main(AssertTest.java:17)

Para habilitar assert, use a opção "-ea" na linha de comando de seu programa.

Um jeito fácil de saber sempre o que vai ocorrer no assert:

assert i>=0 :methodB();

é que ele equivale aproximadamente ao seguinte código:

if ("asserções habilitadas" && ! (i >= 0)) { throw new AssertionError (methodB()); }
Criado 26 de fevereiro de 2008
Ultima resposta 26 de fev. de 2008
Respostas 1
Participantes 2