throw_vs_raise_vs_if