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