C# 使用AggregateException 信息
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 使用AggregateException 信息相关的知识,希望对你有一定的参考价值。
为了得到所有失败任务的异常信息,可以将 Task.WhenAll 返回的结果写到一个Task 变量中。这个任务会一直等到所有任务都结束。否则,仍然可能错过抛出的异常。上一小节中,catch 语句只检索到第一个任务的异常。不过,现在可以访问外部任务的Exception 属性了。Exception 属性是AggregateException类型的。这个是常类型定义了InnerExceptions 属性(不只是InnerException),它包含了等待中的所有异常的列表。现在,可以轻松遍历所有异常了。
代码如下
private static async void ShowAggregatedException()
Task taskResult = null;
try
Task tl = ThrowAfter(2000, "first");
Task t2 = ThrowAfter(1000, "second");
await (taskResult = Task.WhenAll(t1, t2));
catch (Exception ex)
Console.WriteLine($"handled ex.Message");
foreach (var ex1 in taskResult.Exception.InnerExceptions)
Console.WriteLine($"inner exception ex1.Message");
以上是关于C# 使用AggregateException 信息的主要内容,如果未能解决你的问题,请参考以下文章
Web Api 的 PostAsync HttpClient 错误 - System.AggregateException“任务已取消。”
我想等待抛出 AggregateException,而不仅仅是第一个异常
Nuget 包 - 提要 (VSTS):尝试添加源时抛出异常“System.AggregateException”
IoT 边缘上的流分析作业不起作用,异常:System.AggregateException