c# - for循环中的try-catch块,第一次尝试异常进入catch块,然后继续下一个循环迭代,第二个不
问题描述
for 循环中的 try-catch 块。第一次尝试,异常进入循环内的 catch 块,在 catch 块内继续将其抛出回循环的开头。但是第二次在 try 块中遇到异常时,它会在调用方法时抛出 try-catch 块,而不是停留在循环中
for (int count = 0; count < listCount; count++)
{
try
{
var selectElement = new SelectElement(pageElement);
selectElement.SelectByText(pagevalue);
break;
}
catch (NoSuchElementException NSE)
{
driver.FindElement(By.Id("policyNumber")).SendKeys(policies[count]);
driver.FindElement(By.Id("btnOK")).Click();
continue;
}
}
期望异常总是在方法内的 try-catch 块内捕获,而不是跳出到方法外的 try-catch 中。
解决方案
你应该在最后添加另一个catch
,以捕捉所有Exception
你没有考虑到的东西。
for 循环中的 try-catch 块。第一次尝试,异常进入循环内的 catch 块,在 catch 块内继续将其抛出回循环的开头。但是第二次在 try 块中遇到异常时,它会在调用方法时抛出 try-catch 块,而不是停留在循环中
for (int count = 0; count < listCount; count++)
{
try
{
var selectElement = new SelectElement(pageElement);
selectElement.SelectByText(pagevalue);
break;
}
catch (NoSuchElementException NSE)
{
driver.FindElement(By.Id("policyNumber")).SendKeys(policies[count]);
driver.FindElement(By.Id("btnOK")).Click();
continue;
}
catch (Exception ex)
{
//Do something with other exception
}
}
推荐阅读
- javascript - GatsbyJS - 博客文章未在直接链接上加载
- python - 检测句子开头的双空格
- css - 地图和主题
- django - Django 2.1 -- 在 ListView 中显示来自 meta 的模型 verbose_name
- c# - 带有 SystemMediaTransportControls 的 UWP MediaElement 迷你播放器
- angular - 我如何为 ngOnInit 中的订阅编写单元测试用例?
- scala - 如何从 Spark 中的多列数据框转换为列表?
- python - 将 pandas 中的 2 列映射到第三列
- flutter - Flutter单击TextField时如何始终隐藏键盘但保持焦点(保持显示光标)
- php - 如果已经存在 .htaccess 文件,如何添加站点速度模板?或者在哪里添加或者我应该创建新的htaccess?