So it throws `IllegalArgumentException` instead of `RuntimeException`