我想知道,当AggregateException.InnerExceptions.Count
> 1时,有人遇到过案件吗?
例如,TPL将在任务正文中引发的异常包装在AggregateException
中。但是我从来没有见过有多个内部异常的情况。
TPL如何做到这一点?
如何使用任何FCL(或其他广泛使用的库)类来实现此目的(示例将很有用)?
我知道,可以构建此类AggregateException
实例,但是问题是关于实践的。我问这个问题是因为我想了解,处理AggregateException
的最佳方法是什么。
最佳答案
典型的情况是一个任务依赖于多个任务,并且其中多个任务引发异常。例如:
var t1 = Task.Factory.StartNew( () => { throw new Exception(); } );
var t2 = Task.Factory.StartNew( () => Console.WriteLine("Innocuous") );
var t3 = Task.Factory.StartNew( () => { throw new Exception(); } );
// Output: 2
var t4 = Task.WhenAll(t1, t2, t3)
.ContinueWith(t => Console.WriteLine(t.Exception.InnerExceptions.Count),
TaskContinuationOptions.OnlyOnFaulted);
关于c# - 当AggregateException.InnerExceptions.Count> 1时,有人遇到过案件吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16171221/