C# 如何创建异常并将AggregateException作为内部异常传递?

C# 如何创建异常并将AggregateException作为内部异常传递?,c#,C#,想象一下这个场景: Task.Run(() => { // code... }).ContinueWith(x => { var betterEx = new Exception("My custom message", x.Exception)); } , TaskContinuationOptions.OnlyOnFaulted); 但是,betterEx.InnerException返回null 问题 如

想象一下这个场景:

Task.Run(() =>
    {
        // code...
    }).ContinueWith(x =>
    {
        var betterEx = new Exception("My custom message", x.Exception));
    }
    , TaskContinuationOptions.OnlyOnFaulted);
但是,
betterEx.InnerException
返回
null

问题


如何创建
新异常
并将
聚合异常
作为内部异常传递?我想确保聚合中的所有信息都是持久的,不会丢失。

根本不要使用
ContinueWith
。只需使用
等待
。编写能够正常工作的代码要容易得多,特别是在错误处理方面。@servy,不幸的是,我没有这个选项。即使我有这个选项,我仍然想知道如何做到这一点。因为您使用的是Task.Run,所以您至少使用了C#5.0,因此可以使用
wait
@servy。这是一个火灾和遗忘场景,但我希望在出现异常时记录错误。我不想等待它。我遗漏了什么吗?这不是不使用
wait
作为添加延续的方法的原因,它只是意味着调用堆栈中的某个地方将启动一个操作,然后根本不添加延续。但是,当您确实想要添加一个延续时,您应该使用
wait
来完成。