处理for循环中的结构try catch块
本文关键字:try catch 结构 for 循环 处理 | 更新日期: 2023-09-27 18:09:10
如何处理try catch块与保持for循环运行?
In my case
foreach (var str in strArr)
{
try
{
var s1 = gets1(str);
try
{
var s2 = gets2(s1);
}
catch (Exception ex)
{
myLog(ex.message);
}
}
catch (Exception ex)
{
myLog(ex.message);
}
}
1) 问题
如果发生异常,则终止foreach循环。
2)问题
如果gets2(s1)得到错误,哪个捕获块将捕获该异常?
循环不会被终止,因为您捕获了异常,所以代码将继续运行。
也是re异常处理,它取决于异常发生的位置。
当异常发生时,异常将被传递回第一个可用的异常处理程序。
如果S2有异常它会在这里被捕获,
try
{
var s2 = gets2(s1);
}
catch (Exception ex)
{
myLog(ex.message);
Exception caught here
}
同样,如果你的异常是在你第二次尝试
之前引起的 try
{
var s1 = gets1(str);
Exception Caught here
....
other try...
}
catch (Exception ex)
{
myLog(ex.message);
Exception would be caught here.
}