I agree it feels un-DRY with both of these, but commonising it is much tricker than it looks because it's really checking against the ignoredExceptions property on two subtly different annotations (DataPoint/DataPoints) and there's no heirarchy there, as you can't do any inheritance with annotations, so they're totally independent and the real commonality is fairly low...

Because there's no shared type here you'd have to loop through the lists for both exceptions sequentially or something, and it's all generally all bit messy. It's also currently technically possible to use something as a datapoint AND a datapoint*s* method (supplying the result to theories looking for int's and int[]'s), and you could then have exceptions ignored in only one of those cases, so you can't just combine the ignoredExceptions properties of both annotations and then run the same logic. Hmm.

We could instead pull this out into a single easily-checkable `@IgnoreExceptions` annotation which would let us make this DRYer, but then people would probably expect that to work in all sorts of other places, when it clearly won't, and implementing a general purpose exceptions ignorer is a) a big job b) not really something we want to add.

In summary, I'm not sure of a way to actually do that, and I think the best option is just to leave it as is with a little duplication. If you can think of a way to actually do this I'd be very interested to see it though, and it would definitely be an improvement, if you can somehow persuade the Java type system to play ball.