1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Exception em uma Thread

Estou estudando para certificação e mais uma vez não entendi a resolução de um dos exercícios:

Dado:

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.");
    }
}

Quais são as possíveis saídas?

A. java.lang.RuntimeException: Problem

B. run. / java.lang.RuntimeException: Problem

C. End of method. / java.lang.RuntimeException: Problem

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

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

Segundo o mock a resposta correta é D/E.

Vamos as dúvidas:

  • Alteranativa a: Não tem como ele lançar a exception sem antes "printar" run. (ok)

  • Alternativa b: Nessa fiquei com um pouco de dúvida, o agendador pode "chamar" a thread criada antes da main(), se isso acontecer ele vai realmente primeiro "printar" run e depois lançar a exception. Aí vem a dúvida, se ele lançar uma exception na thread criada, ele não "para" a thread main()?

  • Alternativa c: ok, mesma coisa da a, não pode lançar a exception "problem" antes de "printar" run.

  • Alternativa d: blz, ele rodou primeiro a thread main para depois rodas a thread criada.

  • Alternativa e: Mesma dúvida da b.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java certificação threads exception ou faça a sua própria pergunta.