我有一个工作线程执行类似
的任务的场景try
{
for()
{
functionA();
functionB();
}
}
catch(Exception ex)
{
throw new Exception("Message");
}
我基本上是在重新抛出异常,以便当worker完成时,UI线程将收到异常。
现在,如果在functionA
中发生异常,我想抛出异常但继续循环而不是停止。我怎样才能做到这一点?
编辑:如果不清楚,可以通知用户界面已发生异常但未停止工作人员
答案 0 :(得分:1)
这样的事情:
List<Exception> errorsLog = new List<Exception>();
for()
{
try
{
functionA();
}
catch(Exception e) {
errorsLog.Add(e);
}
try
{
functionB();
}
catch(Exception e) {
errorsLog.Add(e);
}
}
if (errorsLog.Count > 0) {
throw new AggregateException(errorsLog);
}
AggregateException
是您的自定义异常,其中包含其他异常列表。