0

我想以特定方式处理异常。

try
{
    for (int i = 0; i < rows.Count; i++)
    {
        doSomething();
    }
}
catch (Exception e)
{
    return false;
}

我正在运行抛出一个 ienum 并尝试使用 doSomething() 方法找到一个元素。问题是这个方法在他找不到时会抛出异常,但我需要确保我在整个枚举中找不到元素。

所以这就是事情......我想知道在catch里面是否有办法做到这一点:

if(i<rows.Count)
  continueFor;

提前泰。

4

2 回答 2

3

将 try catch 放在 for 循环中

for (int i = 0; i < rows.Count; i++)
 {
    try{
      doSomething();
     }
     catch(Exception ex){

        // do something else

     }
 }

这样你就可以参考 i. 或者将属性设置为 i ,然后在您的捕获中您将知道 (i) 是什么。

Int32 lastNumber = 0;

try{
for (int i = 0; i < rows.Count; i++)
 {
     lastNumber = i;
      doSomething();


 } 
}
catch(Exception ex){

        // do something else with lastNumber

}
于 2012-12-04T11:52:09.333 回答
0

相反,您应该从 DoSomething 方法返回一个布尔值并测试循环内返回的值。如果您真的需要一个 try/catch 块,请将其放在方法中,尤其是因为您没有使用 catch 中引发的异常。

 bool returnValue;
 for (int i = 0; i < rows.Count; i++)
                {
                    if(doSomething())
                        returnValue = true;
                }
 return returnValue;
于 2012-12-04T11:53:23.903 回答