エラーの発生頻度によるのでは?
throwは高コストだから発生頻度が高い場合は戻り値で処理した方がいい