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

Discussion

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

public class Item12
{
    public static void main(String[] args)
    {
        int d = 0;
        assert d != 0 : "divisor is zero";
        System.out.println(10 / d);
    }
}

  • A.The program prints 0
  • B.Compilation fails.
  • C.An ArithmeticException is thrown.
  • D.An AssertionError with the message divisor is zero.

Answer: D

The assertion is checked before the division, fails, and throws immediately, so the division never executes and no ArithmeticException occurs. This is the assertion doing its job: turning a downstream failure into a clear statement of the assumption that was broken. Without -ea it would be an ArithmeticException instead.

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

Post your comment

Please log in or register to post a comment.