C#の未初期化変数検出機能が微妙に邪魔になる場合があるんだけどどうしたらいいかな?

LargeStruct hoge;
bool ok = false;
try {
 ok = PossiblyThrowsError(out hoge);
} catch { }
if (!ok) hoge = new LargeStruct();

この時点でhogeが未初期化ってことになってるため利用できない。
宣言時に初期化するしかないのかな?