Machine-translated by Google. Questions are authored in English.
Top

Discussion

Sample17 is run - what will be the output?

public class Sample17
{
    public static void main(String[] args) throws InterruptedException
    {
        Thread t = new Thread(() -> System.out.println(10 / 0));
        t.setUncaughtExceptionHandler(
                (thread, ex) -> System.out.println("handled " + ex.getClass().getSimpleName()));
        t.start();
        t.join();
    }
}

  • A.handled ArithmeticException
  • B.handled RuntimeException
  • C.An ArithmeticException stack trace
  • D.0

Answer: A

The division throws before println can be reached, and the thread's own handler takes precedence over the group's and the default one. getSimpleName reports the runtime class, ArithmeticException, rather than the supertype the parameter is declared as.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.