C#:for循环中catch块中的'Continue'的代码检查

时间:2013-01-28 06:25:39

标签: c#

以下是我的代码,我需要在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 个答案:

答案 0 :(得分:2)

continue是不需要的。它会自动继续。

答案 1 :(得分: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
}

答案 2 :(得分:1)

var name = doc.FirstOrDefault(x => !string.IsNullOrEmpty(x) && x.Length >= 12);

答案 3 :(得分:0)

你不需要休息或继续这里。 试试这个。

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

    try
    {
        if (!string.IsNotNullOrEmpty(name))
        {
            name=name.ToString().Substring(12);
        }
    }
    catch{ } 
}