1. 戻り値として true/false か NULL を返せない
2. エラーが発生したときに落ちることを許可しない

1 && 2 であれば、例外を使用する

bool TryGetHoge(Hoge * pOutput) // Nothrow
const Hoge * GetHogeOrNull() // Nothrow
const Hoge & GetHogeOrThrow() // Hoge が取得できないばあいはスロー
const Hoge & GetHogeOrDie() // Hoge が取得できない → 死