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 回答