/// <summary>
 /// Handling the finally from ExecuteInternal.
 /// </summary>
 /// <param name="deferred"></param>
 /// <param name="listeners"></param>
 /// <param name="context"></param>
 private void HandleFinally(ICollection <System.Exception> deferred, IRepeatListener[] listeners, IRepeatContext context)
 {
     try
     {
         if (deferred.Any())
         {
             System.Exception exception = deferred.First();
             Logger.Debug("Handling fatal exception explicitly (rethrowing first of {0}): {1} : {2}",
                          deferred.Count,
                          exception.GetType().Name,
                          exception.Message
                          );
             Rethrow(exception);
         }
     }
     finally
     {
         try
         {
             foreach (IRepeatListener interceptor in _listeners)
             {
                 interceptor.Close(context);
             }
         }
         finally
         {
             context.Close();
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Handling the finally from ExecuteInternal.
        /// </summary>
        /// <param name="deferred"></param>
        /// <param name="listeners"></param>
        /// <param name="context"></param>
        private void HandleFinally(ICollection<System.Exception> deferred,IRepeatListener[] listeners,IRepeatContext context)
        {
            try
            {
                if (deferred.Any())
                {
                    System.Exception exception = deferred.First();
                    Logger.Debug("Handling fatal exception explicitly (rethrowing first of {0}): {1} : {2}",
                        deferred.Count,
                        exception.GetType().Name,
                        exception.Message
                        );
                    Rethrow(exception);
                }
            }
            finally
            {
                try
                {
                    foreach (IRepeatListener interceptor in _listeners)
                    {
                        interceptor.Close(context);
                    }
                }
                finally
                {
                    context.Close();
                }

            }
        }