在foreach循环中的catch{}块中放入一个return
本文关键字:return 一个 循环 foreach catch | 更新日期: 2023-09-27 18:27:35
我有一个代码块(见下文)。因此,如果我在工作1中遇到异常,代码将在哪里继续执行,工作2也是如此。它会继续工作B还是在foreach
-循环中开始新的转折?有和没有return
的catch {}
有什么区别?
foreach (var item in arr)
{
//// Work A
try
{
// work 1
}
catch { }
try
{
// work 2
}
catch { return; }
//// work B
}
如果您在工作1中遇到异常,它将执行catch
块中的任何操作,然后继续工作2(除非您抛出异常或在工作1的catch块中执行其他操作)。
catch块中的return
将退出包含该foreach
循环的整个方法。如果只想退出foreach
循环,请使用break;
。如果要继续下一项,请使用continue;
。
此处关于foreach
循环的其他参考:http://msdn.microsoft.com/en-us/library/ttw7t8t6.aspx
//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
中的异常将完全退出该方法。
- 如果Work1中出现异常,它将继续到Work2
- 如果Work2中出现异常,它将被捕获并返回foreach的外部函数
- return表示从该函数返回