0

以下は私のコードで、try ブロック内で例外が発生した場合にループを続行する必要があります。

for (int i = 0; i < doc.Length; i++)
{
    name = doc[i].ToString();
    try
    {
        if (name != "")
        {
        name=name.ToString().Substring(12);
        break;
        }
    }
    catch{
        continue;
    }
}

コードのどこかで間違っている場合は教えてください。パフォーマンスに関しても確認してください。前もって感謝します。

4

4 に答える 4

2

continue不要です。自動的に続行されます。

于 2013-01-28T06:29:14.250 に答える
1

回避できる場合は、例外処理は必要ありません。

for (int i = 0; i < doc.Length; i++)
{
    name = doc[i].ToString();

    if(name != null && name.Length >= 12)
    {    
        name = name.Substring(12);    
        break;
    }
}

例外ではないものに例外を使用しないでください。ドキュメントの長さが 12 未満になると予想されない場合は、例外を使用できます (ただし、制御フローだけではありません)。

for (int i = 0; i < doc.Length; i++)
{
    name = doc[i].ToString();

    if (name.Length < 12)
        throw new FooException("Wrong document found!");

    // do something with name
}
于 2013-01-28T06:34:22.743 に答える
1
var name = doc.FirstOrDefault(x => !string.IsNullOrEmpty(x) && x.Length >= 12);
于 2013-01-28T06:39:56.090 に答える
0

ここで休憩も継続も必要ありません。これを試して。

for (int i = 0; i < doc.Length; i++)
{
    name = doc[i].ToString();

    try
    {
        if (!string.IsNotNullOrEmpty(name))
        {
            name=name.ToString().Substring(12);
        }
    }
    catch{ } 
}
于 2013-01-28T06:35:37.187 に答える