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

Discussion

The program is run with java -ea Sample13 - what will be the output?

public class Sample13
{
    public static void main(String[] args)
    {
        try
        {
            assert false;
        }
        catch (Exception e)
        {
            System.out.println("caught");
        }
        System.out.println("end");
    }
}

  • A.An AssertionError propagates out of main.
  • B.Compilation fails.
  • C.The program prints caught, then end
  • D.The program prints end

Answer: A

AssertionError extends Error, not Exception, so a catch (Exception e) block does not match it. The error passes straight through the try statement and out of main, and end is never printed. The hierarchy was chosen deliberately to discourage recovering from a failed assertion.

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

Post your comment

Please log in or register to post a comment.