我得到的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)
{
}
}
答案 0 :(得分:0)
如何解决?
在用户代码中处理它。抛出你的异常。你需要在某处抓住它。如果不这样做,它将最终出现在未处理的异常处理程序中,默认情况下将终止程序。
答案 1 :(得分:0)
而不是重新抛出异常throw e;
我建议您记录将其写入屏幕的异常,以便您可以跟踪它并查看它为什么会发生。
如果你想“处理”它,就不要在catch
处抛出异常