2014-11-04 3 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

+2

코드를 실행하여 알려주십시오. 나는 계속할 필요가 없다고 생각합니다. – bit

+1

이 경우 continue는 중복됩니다. '계속'은 여기서 아무런 차이가 없습니다. 코드는 continue 문과 관계없이 정확히 동일하게 동작합니다. –

답변

4

continue이 작동합니다.

그러나 중복됩니다. catch 블록 다음에 코드가 없기 때문에 예외가 잡히면 건너 뛸 필요가 있으므로 continue은 전혀 필요하지 않습니다.