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

Discussion

Which line is an inappropriate use of an assertion?

public class Sample53
{
    public static void main(String[] args)
    {
        assert compute() > 0;
        System.out.println("checked");
    }

    static int compute() throws IllegalStateException
    {
        throw new IllegalStateException("no data");
    }
}

  • A.assert compute() > 0;
  • B.static int compute() throws IllegalStateException
  • C.System.out.println("checked");
  • D.Nothing here is wrong.

Answer: A

The condition calls a method that always throws, so with -ea the program dies with IllegalStateException rather than an AssertionError, and without -ea it prints checked and never notices. An assertion whose condition can throw reports the wrong failure, or none at all.

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

Post your comment

Please log in or register to post a comment.