better to raise exception?