Dúvida com pergunta sobre Thread [RESOLVIDO]

8 respostas
brunorota

Olá galera

FIquei com a seguinte dúvida na resposta sobre essa pergunta

public class Threads2 implements Runnable {

 public void run() {
 System.out.println("run.");
 throw new RuntimeException("Problem");
 }
 public static void main(String[] args) {


 Thread t = new Thread(new Threads2());
 t.start();
 System.out.println("End of method.");
 }
}

Qual pode ser o resultado?

a resposta correta é:

D. End of method.run.java.lang.RuntimeException: Problem
E. run.java.lang.RuntimeException: ProblemEnd of method.

A resposta D blz, agora a resposta E não entendi, quando lança uma Excpetion como não tem nenhum Try Catch a aplicação não seria encerrada? e ali ainda imprimiu o End of method que está no final da aplicação

Se alguém puder me ajudar ^^

Atenciosamente

8 Respostas

rodrigo.bossini

Se você tem uma única thread no programa, digamos a main, faz todo sentido que se uma exceção é lançada e não é tratada, o programa termine.

Mas pense que você pode ter múltiplas threads executando simultaneamente. Imagina que ocorre exceção em alguma delas. Você certamente não vai querer que esta exceção se propague para todas as outras threads.
É o que ocorre neste caso; a exceção é lançada na thread que seu programa cria, mas não se propaga para a outra thread main.

Andre_Fonseca

brunorota:
Olá galera

FIquei com a seguinte dúvida na resposta sobre essa pergunta

public class Threads2 implements Runnable {

 public void run() {
 System.out.println("run.");
 throw new RuntimeException("Problem");
 }
 public static void main(String[] args) {


 Thread t = new Thread(new Threads2());
 t.start();
 System.out.println("End of method.");
 }
}

Qual pode ser o resultado?

a resposta correta é:

D. End of method.run.java.lang.RuntimeException: Problem
E. run.java.lang.RuntimeException: ProblemEnd of method.

A resposta D blz, agora a resposta E não entendi, quando lança uma Excpetion como não tem nenhum Try Catch a aplicação não seria encerrada? e ali ainda imprimiu o End of method que está no final da aplicação

Se alguém puder me ajudar ^^

Atenciosamente

oi,

RuntimeException é uma unchecked exception, não é necessário o tratamento usando o try catch

dê uma lida neste artigo para entender melhor

abs

brunorota

Olá ROD

Etendi, vdd tem sentido uiahiuah

Obrigado por me explicar

Valeww a todos pela ajuda

G


a resposta correta é:

D. End of method.run.java.lang.RuntimeException: Problem
E. run.java.lang.RuntimeException: ProblemEnd of method.

Olá amigos, por favor me corrijam se estiver errado!

Nesse programa também não seria possível a saída:

run.
End of method.
java.lang.RuntimeException:
Problem

Abs.

brunorota

sim poderia sim

é que nas respostas é a saída que PODE sair entendeu, não é todas as possíveis, nas respostas soh colocaram essas duas

^^

G

legal!

Adelar

gervas-IO:

a resposta correta é:

D. End of method.run.java.lang.RuntimeException: Problem
E. run.java.lang.RuntimeException: ProblemEnd of method.

Olá amigos, por favor me corrijam se estiver errado!

Nesse programa também não seria possível a saída:

run.
End of method.
java.lang.RuntimeException:
Problem

Abs.

Na verdade aquelas respostas são apenas simbólicas e não representando a saída real. Até mesmo os “\n” foram retirados… Uma questão desta poderia assim ser válida, por exemplo para um exame? :?

Att.

brunorota

Creio eu que sim

Até porque essa pergunta é do TestKiller e muita gente fala que o TestKiller é praticamente uma cópia do exame real hehehe

Criado 25 de junho de 2010
Ultima resposta 26 de jun. de 2010
Respostas 8
Participantes 5