ServiceRuntimeException未被用户代码处理

时间:2013-09-12 07:18:06

标签: c# c#-4.0

我得到的ServiceRuntimeException未被以下代码中的用户代码处理,其中ServiceRuntimeException是一个自定义的异常,如何解决它?

List<Action> a=new List<Action>();
            try
            {
            foreach (var parallelActivity in parallelActivities)
            {
                a.Add(delegate
                          {
                              try
                              {
                                  parallelActivity.Execute();
                              }catch(ServiceRuntimeException e)
                              {
                                  throw e;//<--Exception thrown at this line
                              }
                          });
            }

                Parallel.Invoke(a.ToArray());
            }
            catch (ServiceRuntimeException e)
            {
                throw e;
            }catch(AggregateException e)
            {
                throw e.InnerExceptions[0];
            }

ServiceRuntimeException的定义

public sealed class ServiceRuntimeException : Exception
    {
        public ServiceRuntimeException(string msg)
            : base(msg)
        {
        }
    }

2 个答案:

答案 0 :(得分:0)

  

如何解决?

在用户代码中处理它。抛出你的异常。你需要在某处抓住它。如果不这样做,它将最终出现在未处理的异常处理程序中,默认情况下将终止程序。

答案 1 :(得分:0)

而不是重新抛出异常throw e;我建议您记录将其写入屏幕的异常,以便您可以跟踪它并查看它为什么会发生。

如果你想“处理”它,就不要在catch

处抛出异常