まず
public static T Get<T>(this IDbReader reader, string name)
{
 object item = reader(name);
 if(item == DBNull)
  throw new DBNullException(name + "がDBNullです");
 return (T)item;
}

こんなんを作って、DBNullExceptionだけキャッチすればいいんじゃねえの
何がしたいのかよくわからんけど