2014-11-04 3493 views
0

我有一个循环遍历实体框架结果的foreach循环。每个结果都通过一个函数传递。所以为了捕捉任何错误,我有一个try/catch模块设置。在catch块中使用continue语句

事情是这样的:

foreach (var resetReq in query) 
{ 
    try 
    { 
     Console.WriteLine("Attemtping password reset for: " + resetReq.uname); 
     if (adTools.resetPassword(resetReq.uname, resetReq.agentUCID)) 
     { 
      Console.WriteLine("Password reset for: " + resetReq.uname); 
      using (var updateDB = new resetDB()) 
      { 
       Request r = updateDB.Requests.First(x => x.id == resetReq.id); 
       r.reqCompletedDate = DateTime.Now; 
       r.completed = 1; 

       updateDB.SaveChanges(); 

       Console.WriteLine("Reset record for: " + resetReq.uname + 
            " updated successfully to reflect completion."); 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     mailFunctions mailFunc = new mailFunctions(); 
     mailFunc.sendMail(ex); 
     continue; 
    } 
} 

我的问题是,在我的catch块功能continue声明是否正确? 一旦抛出异常并且我的邮件函数被触发,意味着它会继续循环吗?

+0

是的,它会正常运行 – Vajura 2014-11-04 06:18:46

+2

为什么你不执行代码并让我们知道? 我认为你根本不需要继续。 – bit 2014-11-04 06:19:03

+1

在这种情况下,继续是多余的。 “继续”在这里没有任何区别。无论continue语句如何,代码的行为都完全相同。 – 2014-11-04 06:20:54

回答

4

continue将工作。

但是,这是多余的。根本不需要continue,因为在catch块之后没有代码,由于捕获到任何异常而需要跳过该代码。