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)
        {
        }
    }
4

2 回答 2

0

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

如果您想“处理”它,请不要在捕获时抛出异常

于 2013-09-12T07:23:34.273 回答
0

如何解决?

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

于 2013-09-12T07:22:19.360 回答