Imagine um método que retorna um inteiro. Marque os problemas de retornar -1 quando um erro acontecer nesse método.
Answer
Um numero negativo pode causar erros de cálculo
Não ser claro que esse retorno significa um erro para quem invoca o método
-1 pode ser um retorno válido dependendo dos parâmetros
Um número próximo de 0 pode ser um problema em divisões
Question 2
Question
As exceções que não precisam ser tratadas são subclasses de:
Answer
Exception
RuntimeException
SuperficialException
NonCriticalError
Question 3
Question
Considere um método onde uma exceção pode ser lançada. Como esse método pode lidar com o potencial lançamento dessa exceção?
Answer
Com blocos try/catch
Utilizando um bloco finally
Declarando com a cláusula throws na assinatura do método
Com um comando condicional "if"
Question 4
Question
Considere o seguinte código:
try{
a();
b();
c();
}catch(Exception e){
d();
}
Se ocorrer uma exceção em b(), quais métodos e em que ordem eles serão executados?
Answer
a(), b(), d(), c()
a(), b(), c(), d()
a(), b(), d()
a(), b()
a(), b(), c()
Question 5
Question
Que informações você pode encontrar lendo o stack trace de uma exceção?
Answer
Mensagem do erro
Valor das variáveis no momento do erro
Classe da exceção
Pilha de execução dos métodos no momento que a exceção foi criada
Parâmetros passados para os métodos
Question 6
Question
Imagine que você queira fazer um teste que verifique se uma exceção ocorre durante a execução do método de teste. Qual atributo posso colocar na anotação @Test para dizer a exceção que espero que aconteça?
Answer
expect
expected
except
excepted
Question 7
Question
Considere o código a seguir de um teste que precisa verificar se uma exceção ocorre e o conteúdo da mensagem de erro.
@Test
public void testeErro(){
try{
instancia.metodo();
????
}catch(Exception e){
assertEquals(MENSAGEM_ESPERADA, e.getMessage());
}
}
Que comando precisa ser colocado na linha de código com ???? para que o teste verifique que a exceção realmente ocorreu em instancia.metodo()?