Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 异常后继续执行循环_C#_Wpf - Fatal编程技术网

C# 异常后继续执行循环

C# 异常后继续执行循环,c#,wpf,C#,Wpf,如果发生异常,我希望for循环继续执行(百分之九十九,将是连接到门户的问题),这意味着转到连接到下一个门户 我原以为使用我的最终会得到一个goto,但我不喜欢使用goto for (int i = 0; i < Portals.Count; i++) { try { if (!Portals[i].IsConnected) { Portals[i].Connect(); ///.

如果发生异常,我希望for循环继续执行(百分之九十九,将是连接到门户的问题),这意味着转到连接到下一个门户

我原以为使用我的
最终会得到一个
goto
,但我不喜欢使用
goto

 for (int i = 0; i < Portals.Count; i++)
{
    try
       {
        if (!Portals[i].IsConnected)
          {
             Portals[i].Connect();
             ///..Permorm variours actioms...
          }
        }
    catch 
        {
         Window7 win = new Window7();
         win.label1.Content = "Connect to Portal " + (i + 1).ToString() + " Failed..";
         win.ShowDialog();
         return;
        }
for(int i=0;i
如果您希望继续使用try/catch之后的代码,请使用以下命令:
(只需删除return;语句)

for(int i=0;i
如果您希望在出现异常时停止该迭代,只需将返回值替换为continue:

for (int i = 0; i < Portals.Count; i++)
{
    try
    {
        if (!Portal[i].IsConnected)
        {
            Portal[i].Connect();
            ///..Permorm variours actioms...
        }
    }
    catch 
    {
        Window7 win = new Window7();
        win.label1.Content = "Connect to Portal " + (i + 1).ToString() + " Failed..";
        win.ShowDialog();
        continue;
    }
    // TODO - Some more code here
}
for(int i=0;i
删除(注释掉)“catch”中的“return”永远不要使用
goto
。用
continue
更改
return
,然后它将跳到下一个迭代。@scheien我在这里没有看到任何
goto
。如果它下面没有更多的代码,也没有必要使用
continue
。@SriramSakthivel:没有,但他说他想到了,这就足够了:-)当然,
continue
可能不需要,但它没有什么坏处,它确实表明我们正在跳转到下一个迭代。@DmitryBychenko刚刚测试并意识到..我真是个白痴,谢谢顺便说一句,我注意到你在使用
Portal[I]
它不应该是
Portals[I]
因为您使用了
门户。是否计数?
for (int i = 0; i < Portals.Count; i++)
{
    try
    {
        if (!Portal[i].IsConnected)
        {
            Portal[i].Connect();
            ///..Permorm variours actioms...
        }
    }
    catch 
    {
        Window7 win = new Window7();
        win.label1.Content = "Connect to Portal " + (i + 1).ToString() + " Failed..";
        win.ShowDialog();
        continue;
    }
    // TODO - Some more code here
}