一般的に渡ってきた引数に対してチェックをせず処理する関数と厳重にチェックしてから処理する関数の二つを提供すればいいんじゃない?
もちろん後者はチェックしてから前者を呼び出すことになる
チェック不要が自明な時や何度も呼び出す時は前者で十分