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