问题标签 [aggregateexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure-storage - CloudFileShare CreateIfNotExistsAsync().Wait 方法抛出远程服务器返回错误:(400) Bad Request
我正在尝试使用 Azure 文件服务预览作为我的两个云服务实例之间的映射驱动器,我遇到了以下博客文章,其中包含一些详细信息:
我已经注册了存储帐户的预览版并创建了一个新的存储帐户并验证了文件端点已包含在内。然后,我使用以下代码尝试以编程方式创建共享:
在 CreateIfNotExistsAsync().Wait() 方法上,我收到了一个聚合异常,当我查看内部详细信息时,它只是说远程服务器返回了一个错误:(400) 错误请求。
c# - Task.WaitAll Index Out Of Bounds 异常原因
为什么这不是每一个都完成?相反,它会引发异常,就像未捕获异常一样。此外,异常“索引超出数组范围”对我来说没有意义。
c# - 尝试使用 Google API 进行身份验证时,在 mscorlib.dll 中发生“System.AggregateException”
我正在尝试使用 Google Calendar API 为自己制作一个小日历应用程序。我为此使用 C# 和 .NET。基本上,我所做的只是从这里复制示例代码并从这里 添加 FileDataStore 类在 Google Developers Console 中创建一个项目,为日历启用 API,通过 NuGet 安装库等等。所以我的代码现在看起来像这样:
但是当我尝试构建它时 - 它在第一(UserCredential credential =...)行的 mscorlib.dll 中发生“System.AggregateException”而崩溃。具体来说:
mscorlib.dll 中出现了“System.IO.FileNotFoundException”类型的第一次机会异常
附加信息:加载文件或程序集失败(最初:Не удалось загрузить файл или сборку)“Microsoft.Threading.Tasks.Extensions.Desktop,Version=1.0.16.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或依赖项之一。找不到指定的文件(原:либо одну из их зависимостей. Не удается найти указанный файл.)
如果有这个异常的处理程序,程序可以安全地继续。
它可能很容易修复,我想我忽略了一些东西,但我不知道它是什么。你能告诉我,该怎么做,或者我应该在文档中的哪个位置查看?
UPD:我自己修复了它:我所要做的就是通过 NuGet 中的命令“Install-Package Microsoft.Bcl.Async -Version 1.0.166-beta -Pre”更新 Microsoft.Bcl.Async。
c# - 将任务异常标记为已处理
如何将任务中引发的异常标记为已处理。问题是当我调用一个任务的方法时,即使我很久以前已经处理过了Wait()
,它也会抛出一个。以下代码片段显示了我要解决的问题。在我的原始代码中,我处理代码的一部分,并在代码的另一部分中调用该方法。但问题是一样的。AggregateException
AggregateException
AggregateException
Wait()
上面的代码产生以下输出:
- 任务开始
- 任务出错
- 处理了 InvalidOperationException --> 我的测试异常
- 再次抛出 AggregateException !!!为什么???
- 我的测试异常
- 完成的
c# - HttpClient 异步方法,聚合异常
HttpClient 异步方法(例如 PostAsync、GetAsync 等),如果抛出异常,则返回 AggregateException。现在,聚合异常可以包含内部异常列表。我的问题是有人可以提供一个示例,其中 http 客户端上的一种异步方法导致多个内部异常?
假设尽管可能存在内部异常列表,但在大多数情况下您只会得到一个内部异常,是否安全?
我知道他们为什么被扔掉以及如何处理它。
因此,为了更清楚地说明这一点,是否有可能对引发聚合异常的 http 客户端异步方法的一次调用在其内部异常列表中包含多个异常?
json - Json反序列化错误AggregateException c#
我在尝试将 DataSourceResult 从一个 Web 服务移动到另一个时遇到错误...客户端调用驻留在我们的 Web 服务器上的 Web 服务 A。然后我们调用驻留在我们的数据库服务器上的 Web 服务 B。目的是 Web 服务 A 将某些敏感数据添加到调用中,我们希望将其隐藏在防火墙后面......然后调用由 Web 服务 B 处理,获取 DataSourceResult,并且似乎可以很好地序列化它......注意我正在使用相同的序列化属性集进行机器人序列化和反序列化,为了简洁起见,我只是没有在此处显示对序列化的调用。当我去反序列化它时,我得到一个 System.AggregateException - 在“return formatter.ReadFromStreamAsync(typeof(T), stream, null, null).Result as T;”行上抛出 我的反序列化代码......有什么想法吗?任何事情都会非常感激:)
序列化代码:
反序列化代码:
Json 对象/设置被传递到方法中:
我有这个字符串,我尝试反序列化它并引发此错误:
c# - AggregateException.Flatten() 丢失堆栈跟踪信息。丢失的信息重要还是不重要?
AggregateException.Flatten 方法在 MSDN 上的文档说明如下:“如果任何内部异常本身是 AggregateException 的实例,则此方法将递归地展平所有异常。新 AggregateException 中返回的内部异常将是所有根植于提供的 AggregateException 实例的异常树的内部异常。”
这听起来很可疑,就像我们将丢失堆栈跟踪信息一样,所以我查看了Reference Source上的实现,看起来堆栈跟踪信息确实会丢失。
所以我们进行了测试:
测试的输出如下:
请注意,扁平化的 AggregateException 中没有提到第 39 行!!!
这个丢失的信息重要吗?或者,当我们展平 AggregateException 时,我们是否会丢失第 39 行并不重要?
c# - Many nested AggregateExceptions
Working with Entity Framework 7, I made a simple mistake with some linq (used Skip and forgot to include my OrderBy clause).
The exception that was thrown by this included a number of nested aggregate exceptions.
The code that generates (and catches) the exception is:
The code above is in a repo class called from a Asp.Net 5 WebApi controller. All levels of the call are using async-await.
However the aggregate exception that I got from this was (this is dumped to the immediate window from the catch block shown above):
System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: A query containing the Skip operator must include at least one OrderBy operation. at Microsoft.Data.Entity.Relational.Query.Sql.DefaultSqlQueryGenerator.GenerateLimitOffset(SelectExpression selectExpression) at Microsoft.Data.Entity.Relational.Query.Sql.DefaultSqlQueryGenerator.VisitSelectExpression(SelectExpression selectExpression) at Microsoft.Data.Entity.Relational.Query.Expressions.SelectExpression.Accept(ExpressionTreeVisitor visitor) at Microsoft.Data.Entity.Relational.Query.Sql.DefaultSqlQueryGenerator.GenerateSql(SelectExpression selectExpression, IDictionary`2 parameterValues) etc etc
Here the actual exception has ended up wrapped by a whole bunch of layers of aggregate exception (6 nested layers). I understand why I'm getting an aggregate exception, but wondered why so many of them? More so since I'm looking at the exception before it has bubbled back up to the controller entry-point.
Would this be a result of a number of layers of async-await, (don't think I have as many as 6) or could it be an issue in the EF7 implementation?
This is currently using EF 7 release 7.0.0-beta4.
c# - AggregateException 中的 C# InnerException
我有如下代码来捕获使用 TaskFactory 和 Task.Run 创建的任务引发的异常。如果我使用 TaskFactory,我可以在 Continued 任务中检查上一个任务引发的异常,而无需使用 Task.WaitAll 方法。如果我使用 Task.Run,除非我明确地等待子任务完成,否则不会执行 Continued 任务。TaskFactory.StartNew 中的哪个标志改变了这种行为?
另外,AggregateException 类中的 InnerException 和 InnerExceptions 有什么区别?InnerExceptions 返回子任务抛出的所有异常的只读集合。InnerException 返回仅由一个子任务引发的异常的 AggregateExcpetion。
c# - 使用任务保持 UI 响应,处理 AggregateException
如果我的 WinForms 应用程序启动任务以在任务执行时保持响应,我在处理 AggregateException 时会遇到问题。
简化的情况如下。假设我的 Form 有一个相当慢的方法,例如:
按下按钮后,我希望我的表单显示 SlowDivision(3,4) 的结果。以下代码会使用户界面挂起一段时间:
因此,我想启动一个将进行处理的任务。此任务完成后,它应该继续执行将显示结果的操作。为了防止 InvalidOperationException 我需要确保 label1 是从创建它的线程访问的,因此是 Control.Invoke:
到目前为止,一切都很好,但是如何处理异常,例如如果我想计算 SlowDivision(3, 0)?
通常,如果任务抛出未处理的异常,它会通过 AggregateException 转发到等待线程。许多示例显示以下代码:
问题是:我不能等待我的任务执行,因为我希望我的 UI 保持响应。
创建一个错误的任务延续,它将读取 Task.Exception 并相应地处理不起作用:
函数中的 try / catch 也无济于事(正如所料)。
那么我如何在不等待的情况下对任务抛出的 AggregateExceptions 做出正确的反应。