Why do you think throwing an Error is better than returning `NaN`?