-1

戻り値はnullではないのですが、NullReferenceExceptionをキャッチしました

var currentTakipciler = TwitterCacheDepo.GetTakipciler(TemaUserID)

デバッグで戻り値を調べたところ、null ではありませんが、nullreferenceexception が発生しています。

try
{
    var currentTakipciler = TwitterCacheDepo.GetTakipciler(TemaUserID);
}
catch (Exception ex)
{
    Utils.LogYaz(ex.ToString());
}

public class TwitterCacheDepo
{
    ...
    ...

    public static Dictionary<int, string> GetTakipciler(string TemaUserID)
    {
        try
        {
            Dictionary<int, string> returnValue = new Dictionary<int, string>();
            if (allTakipciler != null && allTakipciler.Rows.Count > 0)
            {
                returnValue = allTakipciler.AsEnumerable().Where(x => x.Field<DateTime?>("BitTarih").Equals(null) && x.Field<string>("TemaUserID").Equals(TemaUserID)).ToDictionary(x => x.Field<int>("ID"), y => y.Field<string>("UserID"));// SqlDataBase.SqlGetTable("SELECT ID,TemaUserID,UserID,BitTarih FROM TBL_TwitterUserTakipciler WHERE BitTarih IS NULL SID = " + 4663);
                return returnValue;
            }
            else
            {
                allTakipciler = SqlDataBase.SqlGetTable("SELECT ID,TemaUserID,UserID,BitTarih FROM TBL_TwitterUserTakipciler WHERE SID = " + 4663);
                return allTakipciler.AsEnumerable().Where(x => x.Field<DateTime?>("BitTarih").Equals(null) && x.Field<string>("TemaUserID").Equals(TemaUserID)).ToDictionary(x => x.Field<int>("ID"), y => y.Field<string>("UserID"));
            }
        }
        catch (Exception ex)
        {
            Utils.LogYaz(ex.Message.ToString());
            return null;
        }
    }
}
4

1 に答える 1

2

完全なスタック トレースを調べて、null ref 例外がスローされた正確な行番号を確認する必要があります。これにより、何が起こったのかが明確に示されます。

あなたが言うように、デバッガーを使用して問題を再現できないため、スタックトレースを取得するには、デバッガーを使用せずに実行します。

于 2013-09-16T09:31:09.997 に答える