Это действительно зависит от ваших инвариантов. Если параметром является optiona, тогда игнорирование параметра null вполне подойдет, но если этот параметр требуется, то это скроет ошибку в вашем приложении. Кроме того, в зависимости от языка, если инвариант является достаточно плохим, вы можете рассмотреть третий вариант: отменить приложение.
Все дискуссии о том, использовать или нет исключения, всегда можно сопоставить с решением о том, является ли ситуация исключительной или нет, и, если она является исключительной, выбрасывание или, скорее, прерывание приложения зависит от того, восстанавливаемый или нет.