C#:对'的代码审查;续';在捕捉块内部进行循环

C#:对'的代码审查;续';在捕捉块内部进行循环,c#,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

下面是我的代码,如果try块中出现异常,我需要继续循环

for (int i = 0; i < doc.Length; i++)
{
    name = doc[i].ToString();
    try
    {
        if (name != "")
        {
        name=name.ToString().Substring(12);
        break;
        }
    }
    catch{
        continue;
    }
}
for(int i=0;i
如果我在代码中的任何地方出错,请告诉我。请检查性能。
提前感谢。

不需要
继续。它将自动继续。

不需要
继续。它将自动继续。

如果可以避免,则不需要异常处理:

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

    if(name != null && name.Length >= 12)
    {    
        name = name.Substring(12);    
        break;
    }
}
for(int i=0;i=12)
{    
name=name.Substring(12);
打破
}
}
不要对非例外的事物使用例外。如果您不希望任何文档的长度小于12,那么您可以使用异常(但不仅限于控制流):

for(int i=0;i
如果可以避免,则不需要异常处理:

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

    if(name != null && name.Length >= 12)
    {    
        name = name.Substring(12);    
        break;
    }
}
for(int i=0;i=12)
{    
name=name.Substring(12);
打破
}
}
不要对非例外的事物使用例外。如果您不希望任何文档的长度小于12,那么您可以使用异常(但不仅限于控制流):

for(int i=0;i
您不需要在此中断或继续。 试试这个

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

    try
    {
        if (!string.IsNotNullOrEmpty(name))
        {
            name=name.ToString().Substring(12);
        }
    }
    catch{ } 
}
for(int i=0;i
您不需要在此中断或继续。 试试这个

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

    try
    {
        if (!string.IsNotNullOrEmpty(name))
        {
            name=name.ToString().Substring(12);
        }
    }
    catch{ } 
}
for(int i=0;i
似乎是从您的代码中删除
中断
的候选者,它会起作用fine@CuongLe:非常感谢。不,我把它放在这里是因为如果它没有抛出任何错误,我必须退出循环。这是一个问题吗???可能不相关,但为什么你不能检查字符串长度并避免尝试…捕获?另外,double.ToString是不必要的。我想说,这是非常相关的。似乎可以从代码中删除
break
,它会起作用fine@CuongLe:非常感谢。不,我把它放在这里是因为如果它没有抛出任何错误,我必须退出循环。这是一个问题吗???可能不相关,但为什么你不能检查字符串长度并避免尝试…捕获?同样是双倍。ToString是不必要的。我想说这是非常相关的。Dan-o:真的吗???如果是这样的话,我就把它拿走。丹奥:真的吗???如果是这样的话,我会删除它。你甚至不需要
名称!=“”
@McAden同意,在这种情况下,代码将保持不变。但是我也添加了空检查,所以您可能可以跳过
名称!=null
也是空的,因为它是从ToString()初始化的。我从没见过ToString回来null@McAden很抱歉,在我看到
ToString()
实现
doc
:)之前,我不能这样做。您甚至不需要
名称!=“”
@McAden同意,在这种情况下,代码将保持不变。但是我也添加了空检查,所以您可能可以跳过
名称!=null
也是空的,因为它是从ToString()初始化的。我从没见过ToString回来null@McAden很抱歉,在看到
ToString()
实现
doc
:)之前我不能这么做。聪乐:我不知道这样的事情。谢谢你提供的信息。@user2002774:现在你已经知道了:)聪乐:我不知道这样的事情。谢谢你提供的信息。@user2002774:现在你已经知道了:)