2014-11-04 3498 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塊之後沒有代碼,由於捕獲到任何異常而需要跳過該代碼。