throw IllegalArgumentException < 0