1The documentation lists exceptional conditions and the exceptions that 2should be thrown, but doesn't say which exception previals when two or 3more exceptional conditions exist at the same time. For example, 4attempting to set a protected field from an unrelated class causes an 5IllegalAccessException, while passing in a data type that doesn't match 6the field causes an IllegalArgumentException. If code does both at the 7same time, we can only throw one or the other. 8 9This exercises the various failure modes to ensure that behavior is 10equivalent, and not merely spec-compliant. 11