Multiple choice technology

Given: 1. public class Threads2 implements Runnable { 2. 3. public void run() { 4. System.out.println("run."); 5. throw new RuntimeException("Problem"); 6. } 7. public static void main(String[] args) { 8. Thread t = new Thread(new Threads2()); 9. t.start(); 10. System.out.println("End of method."); 11. } 12. } Which two can be results? (Choose two.)

  1. java.lang.RuntimeException: Problem

  2. run.java.lang.RuntimeException: Problem

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

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

  5. run.java.lang.RuntimeException: ProblemEnd of method.

Reveal answer Fill a bubble to check yourself
D,E Correct answer
Explanation

Thread execution is non-deterministic. Either main prints "End of method." first (option D), or the thread prints "run." first (option E). The RuntimeException is uncaught in the thread so it just terminates after printing. Options A, B, C are not valid output patterns.