我有一个代码块(见下文)。因此,如果我在工作1中得到异常,那么代码执行将继续在哪里,并且与工作2相同。它会继续工作B还是在foreach
循环中开始新的转变? catch {}
有没有return
的区别是什么?
foreach (var item in arr)
{
//// Work A
try
{
// work 1
}
catch { }
try
{
// work 2
}
catch { return; }
//// work B
}
答案 0 :(得分:6)
如果你在工作1中得到一个例外,那么它会在catch
块中做任何事情,然后继续工作2(除非你抛出异常或做其他事情来拯救工作1' catch block)。
catch块中的return
将退出包含该foreach
循环的整个方法。如果您想退出foreach
循环,请使用break;
。如果您想继续使用下一个项目,请使用continue;
。
此处foreach
循环的其他参考:http://msdn.microsoft.com/en-us/library/ttw7t8t6.aspx
答案 1 :(得分:2)
//Ignore the exception
catch { }
//Continue with the next iteration
catch { continue; }
//Exit the loop
catch { break; }
//Exit the method
catch { return; }
所以回答你的问题;
work 1
中的异常将基本上忽略该异常并继续运行work 2
。
work 2
中的异常将完全退出该方法。
答案 2 :(得分:1)