いやでもこういう設計が必要なケースはあるんじゃないか?
想定範囲内のエラーでは例外はコストが高いのでfalseを返し、
想定しないエラーはより情報の多い例外を使う、とか?