0

私はこのようなコードを持っています、

using (SPSite site = new SPSite("http://site/"))
{    
    using (SPWeb web = site.OpenWeb())
    {
        try
        {
            SPList list = web.Lists["ListName"]; // 2        
            SPListItem item = list.Items.Add();
            Guid itemId = item.UniqueId;
            SPListItem itemUpdate = web.Lists["ListName"].Items[itemId];
            itemUpdate["PercentComplete"] = .45; // 45%    HERE IS EXCEPTION      
            itemUpdate.Update();
        }
        catch (Exception e)
        { 
            Console.WriteLine(e);
            Console.ReadLine();

        }
    }
}

オンラインでこの例外が発生していますitemUpdate["PercentComplete"]

値が期待される範囲内にありません。

私が欲しいのは

この例外を無視して、null を返し、例外をスローする代わりに null を保持するようにします。

私はすでにこれを試しました、

Object letSay = itemUpdate["PercentComplete"]; 
// thought object can be null but same exception

試したくない

try {} and Catch {} either.
4

3 に答える 3

1

このフィールドの存在を確認するだけです:

SPListItem item = list.Items.Add();
if (item.Fields.ContainsField("PercentComplete"))
{
    item["PercentComplete"] = .45;
}
item.Update();
于 2013-08-29T10:14:46.840 に答える
0

スティーブの答えに対するあなたのコメントによると:

しかし、C#で例外を無視する方法を知りたかったのですが、上記のコードは単なる例です

C# では、try-catch-block を使用せずに例外を無視することはできません。あなたの場合、コードは次のようになります。

try
{
    itemUpdate["PercentComplete"] = .45; // 45%    HERE IS EXCEPTION
}
catch
{
}

しかし、このコードは素晴らしいものではありませんし、そもそも例外を単純に無視するべきではありません!

于 2013-08-28T12:56:00.657 に答える