问题标签 [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.

0 投票
1 回答
27 浏览

foreach - 无法使用“foreach”处理异常,因为异常不包含“GetEnumerator”

我想报告Exceptions在执行某些任务期间抛出的问题:

但是,在这种情况下我不能使用foreach循环。

有没有解决这个问题的方法?

0 投票
0 回答
216 浏览

c# - SignalR 异常终止服务/应用程序 - System.Threading.Tasks.TaskExceptionHolder.Finalize()

有时我一直在与这个问题作斗争。针对 .NET 4.0 的 Windows 服务创建了一个 .NET 信号器客户端,但有时System.Threading.Tasks.TaskExceptionHolder.Finalize()由于任务中引发的聚合异常而被杀死。这是设置的要点 - 省略了其他细节。

视窗服务:

SingalrEnv 类:

但是,当 Signalr 在 Signalr 客户端框架内引发异常OnError-System.TimeoutException或任何网络异常时,Windows 服务最终会被终止。我什至尝试处理Taskscheduler.UnObservedTaskException但无济于事。所以似乎异常是在另一个线程中抛出的,并且没有在那里处理。通过我的设置,我应该捕获异常并观察 - 防止崩溃。在处理 TPL 和信号器中的异常时我缺少什么?

注意:在使用 .net 4.5 的系统上,该服务没有问题 - 没有崩溃 - 因为 Microsoft 将其设为默认行为。必须在 web.config 中明确启用崩溃行为。

0 投票
1 回答
2099 浏览

ios - C# - Xamarin - HttpClient - 由于对象的当前状态,操作无效 - iOS

我正在开发一个发出 HTTP 请求的跨平台库。它在 Android 上运行良好,但是当我尝试在 iOS 上使用它时出现异常,我不知道如何修复它。

这是我的代码:

task.Wait();我得到一个System.AggregateException内部例外的情况下System.InvalidOperationExceptionOperation is invalid due to the current state of the object.

试图找到一些解决方案,我发现问题可能是通过在 UI 线程上调用它引起的。但这就是将这一切都包含在Task.Factory.StartNew.

我已经尝试了所有我知道要做的事情,但还没有解决这个问题。任何帮助将不胜感激。

编辑:

我决定在 iPhone 模拟器上尝试我的解决方案。这是一个运行 iOS 10 的 iPhone 6 模拟器。我的物理设备是一样的。它适用于模拟器,但由于某种原因不适用于物理设备......非常奇怪。

编辑2:

感谢@YuriS 找到解决方案。

来自:https ://forums.xamarin.com/discussion/36713/issue-with-microsoft-http-net-library-operation-is-not-valid-due-to-the-current-state-of-the-对象

您可以做的是:1)转到ios项目的参考资料2)编辑参考资料3)检查'System.Net.Http'

android 的行为是相同的。

0 投票
2 回答
5640 浏览

c# - C# Task.WaitAll() 取消错误处理

我有个问题。我尝试运行多个长时间运行的任务。如果一个失败,我想取消所有其他任务并获得失败异常。下面给出的例子。我想用抛出的异常捕获 AggregateException

但是我捕获的是 OperationCanceledException 而不是 AggregateException,因为我想取消所有其他任务。

请帮忙。

0 投票
1 回答
152 浏览

c# - 调试期间的 AggregateException 强制重新启动 ForAll 主体

我正在经历非常奇怪的行为,我既无法理解也无法解释。我能够创建一个非常简单的示例来证明这一点。这是在 VS.Net 2013 和 2015 上在具有多个目标 .Net 版本的不同机器上复制的。

当您只运行该代码而不进行调试时,您会收到预期的结果:两个任务已启动,一个失败,以及控制台中的 AggregateException 详细信息:

但是当你开始调试相同的代码时,结果真的很奇怪。首先,您收到 AggregateException:

VS.2013 聚合异常

但是当您单击继续时,它只会一次又一次地启动这两个任务 - 这是控制台的示例输出:

我正在使用两个任务来证明它们都在重新启动;您可以注释掉一个空的并收到同样令人困惑的结果。

我的问题是 - 这是一个 VS.Net 错误,还是我不理解的某些功能?

有没有办法在这里以“正常”的方式进行调试?

0 投票
2 回答
740 浏览

c# - Task.Wait() 未捕获 AggregateException

我正在尝试捕获将由 Task.Factory.StartNew 方法抛出的 NullReferenceException。我认为它应该被带有 task.Wait() 方法的'try'语句捕获。我也提到了为什么这个异常没有被捕获?,但不知道。你愿意分享你的智慧吗?

0 投票
1 回答
1021 浏览

c# - 取消任务并将状态设置为“已取消”

我希望在 50 毫秒结束后完成一项任务。然后任务的状态应该设置为“ Canceled ”,否则设置为“ RunToCompletion ”。

任务创建在这里:

到目前为止,我得到的只是一个AggregateException,它不会被 -block 以某种方式try/catch捕获。

0 投票
1 回答
309 浏览

c# - Task.Run() 中未引发 AggregateException

我试图从故意失败的 Task.Run() 操作中捕获 AggregateException,但是没有抛出 AggregateException。为什么?

我希望抛出异常,但事实并非如此。我也尝试添加 .Wait 并且仍然没有得到异常。该请求来自 Windows UI。有任何想法吗。谢谢。

0 投票
1 回答
1551 浏览

c# - 重新抛出 AggregateException 的内部异常

假设我有一个接口:

然后我在一个类中实现这个接口。该实现需要一些异步操作。类似于以下内容:

将异步操作链中发生的第一个异常返回给外部调用代码的正确方法是什么?以下是一个好方法吗?

0 投票
1 回答
1197 浏览

c# - Parallel.Foreach 循环,与显式 throw 语句不一致的行为

使用 Linqpad 创建了一个简单的程序,我在Parallel Foreach循环中显式抛出异常,理想情况下应在调用者中捕获为Aggregate Exception,但是当我显式抛出异常时,它有时会随机跳过一些异常。我无法理解这种行为,任何人都可以解释:

细节:

  1. 有两个版本的 Test,一个带有显式 Try Catch,另一个没有
  2. 两者都具有相似的不一致行为,以至于在 Test1 中,即使本地 try catch 也不会打印该值
  3. 可以有第三个版本Test3,它总是作为异常没有明确地从并行循环中抛出
  4. Dump是一个 linqpad 打印调用替换它Console.WriteLine在视觉工作室

这里有一个选项define ,它收集a中的所有异常,ConcurrentQueue稍后将它们作为聚合异常抛出,但是为什么当前代码不能按预期工作,我不太确定。在这种情况下,我们期望输出为:

但是其中一些是随机跳过的,在一个简单的程序中也是如此,在一个复杂的程序中会有更多的失误,这会做更多的工作