RuntimeException

5 respostas Resolvido
freddy99

Bom dia a todos. Estou estudando para a certificação programmer. Não entendi porque o código abaixo não consegue lançar a exceção e cai no “catch”. Alguém poderia me explicar, por favor? o resultado do código é a seguinte impressão no console:

hello
throwit
caught
finally
after

segue o codigo:

public class RTException {

	public static void throwit(){
		System.out.println("throwit");
		throw new RuntimeException();
	}
	public static void main(String[] args) {
		try
		{
			System.out.println("hello");
			throwit();
		}
		catch(Exception e)
		{
			System.out.println("caught");
		}
		finally
		{
			System.out.println("finally");
		}
		System.out.println("after");
	}
}

5 Respostas

N

creio que deveria usar throws na declaração do “throwit”

public static void throwit() throws RuntimeException

throw é util quando tem um if que diz algo deu errado, o throw do seu código esta gerando RuntimeException toda vez que o método throwit é chamado.

main esta tipo: "tente imprimir “hello” e rodar o throwit"
throwit esta tipo "imprima “throwit” e retorne RuntimeException
deveria estar: "imprima throwit e, se houver erro, retorne RuntimeException

DaniloAndrade

Não entendi sua duvida @freddy99!

A saída do console mostra que a exception foi tratada imprimindo a string caught

Lucas_Camara
Solucao aceita

A exceção foi lançada quando o método throwit(); foi invocado, caiu no catch, depois no finally e finalizou executando o ultimo system.out. Normal.

freddy99

isso mesmo!!! do try foi para o catch. Acho que foi o cansaço e não prestei atenção. muito obrigado. perdão pela demora na resposta.

freddy99

vdd. obrigadissimo.

Criado 13 de maio de 2017
Ultima resposta 26 de jun. de 2017
Respostas 5
Participantes 4