问题标签 [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 投票
2 回答
102 浏览

exception - Why is TcpClient.Connect() throwing System.AggregateException

I am trying to check the TCP connection to a localhost TCP server (ActiveMQ broker) using following code:

I stopped the localhost server (ActiveMQ broker), and tried to run the above code. It threw System.AggregateException. When I started the server and ran the code; it connects to the server.

According to the documentation of TcpClient.Connect it says it will throw one of the following:

  • ArgumentNullException
  • ArgumentOutOfRangeException
  • SocketException
  • ObjectDisposedException
  • SecurityException
  • NotSupportedException

Why will it throw System.AggregateException?

0 投票
0 回答
81 浏览

c# - 聚合事件异常

我正在跟进一个教程,详细说明处理事件的多个订阅者中引发的事件。但是,当代码运行时,TargetInvocationExceptioncatch 块不会捕获订阅者的方法体中抛出的异常:throw new Exception("Hello")throw new Exception("World")分别。

相反,我在第一个侦听器中得到了一个未处理的异常错误,可以预见的是throw new Exception("Hello")in private static void AlarmListener

尝试捕获被调用方法的异常时,我做错了什么?

0 投票
1 回答
292 浏览

c# - 来自 Task.WhenAll 的 AggregateException 仅在等待时包含第一个异常

Task.WhenAll调用中导致多个异常时,一旦您通过多于一层的等待等待它,看起来只有一个异常被吸收到任务中。我的印象是该Task.Exception.InnerExceptions属性将包含所有发生的异常,但在某些情况下,它们似乎只有一个。

例如,此示例代码创建多个引发异常的任务,然后在它们上等待一个 Task.WhenAll,然后写入控制台它能够捕获的异常:

我期望这要么进入catch(AggregateException e)子句,要么至少有三个内部异常task.Exception.InnerExceptions- 引发一个异常的实际情况是,只有一个异常在task.Exception.InnerExceptions

更奇怪的是,这种行为会根据您是否等待Task.WhenAll调用而改变CauseMultipleExceptionsAsync——如果您直接返回任务而不是等待它,那么所有三个异常都会出现在task.Exception.InnerException. 例如,替换CauseMultipleExceptionsAsync为:

给出这个结果,task.Exception.InnerExceptions 中包含所有三个异常:

我对此感到很困惑 - 在最初的示例中异常 B 和 C 去了哪里?如果 Task.Exception 不包含有关它们的任何信息,您将如何再次找到它们?为什么 awaiting insideCauseMultipleExceptionsAsync隐藏了这些异常,而Task.WhenAll直接返回却没有?

如果它有所作为,我可以在 .Net Framework 4.5.2 和 .Net Core 2.1 中复制上述内容。

0 投票
1 回答
118 浏览

exception - c# wpf 如何捕获 FirestoreChangeListener 异常

我正在创建几个FirestoreChangeListeners(遵循https://googleapis.github.io/google-cloud-dotnet/docs/Google.Cloud.Firestore/userguide.html上的用户指南)并且一切正常,但是当有网络问题,抛出 System.AggregateException,内部异常是 Grpc.Core.RpcException,状态为“Transport Closed”或“Failed to connect”(这是有道理的)。

问题是我不知道如何捕获或处理这些由 FirestoreChangeListeners 抛出的内部异常,或者我应该如何构造方法才能做到这一点。

我尝试在多个地方添加 try/catch,尝试将 ContinueWith 添加到侦听器,但无论如何我仍然得到未处理的 System.AggregateException。

在此处输入图像描述

文档说 Listen 方法是一种“方便”的方法,据说有助于监视 Listener ......它确实包括一个返回 Task 的 ListenerTask 方法。也许我需要对这些任务做些什么......我读过的所有建议我应该等待这个,但由于它是一个异步监听器,在程序运行的整个过程中都在后台运行,我不确定应该使用什么方法等待...不会等待阻止整个方法吗?

FirestoreChangeListener 监听方法

我的代码是:

非常感谢任何人都可以提供的任何帮助!

亲切的问候,达米安

0 投票
0 回答
40 浏览

windows - 自包含的win-x64可执行AggregateException:连接主动拒绝

我正在尝试为 Windows 发布一个独立的可执行文件。当我尝试通过特权 powershell(或 cmd)窗口运行可执行文件时,我收到以下错误:

如果它是相关的,在那条线上,我正在连接到另一台机器上的 tomcat 托管服务器。

奇怪的是,当我发布非独立应用程序时,我没有收到错误消息。应用程序成功运行完成。当我在 Visual Studio 中以调试模式运行程序时,我也没有收到错误消息。此外,我为 linux-x64 构建了一个独立的可执行文件,并且能够在 linux 机器上成功运行。

我尝试禁用 Windows Defender 防火墙和类似程序。但是,由于程序在其他情况下运行良好,我认为这不是防火墙问题。

独立的可执行文件有问题吗?在 Windows 上运行自包含的可执行文件之前,我是否遗漏了什么?我不知道如何解决这个问题。

0 投票
0 回答
120 浏览

unit-testing - xunit 测试用例中未捕获的聚合异常

我正在使用完全异步等待方法查询第三方 SDK,并且 SDKAggregateException在正常情况下返回一个。在AggregateException内部异常中将是一种ABCException.

但是,在使用 Moq 和 XUnit 在单元测试用例中模拟相同的代码时,它会ABCException直接返回。

这是 catch 块的代码部分:

这是单元测试用例的代码块:

在上面的代码中,一个正常的调用进来了AggregateException,单元测试用例调用进来了ABCException

0 投票
1 回答
51 浏览

c# - 为什么我的自定义异常被 AggregatException 包裹。这取决于什么?

我有以下自定义异常:

我在这一点上扔它:

但是在测试的时候,我发现它被一个AggregateException包裹了,测试失败了:

在同一个类的其他地方我也抛出它(例如在SampleMethod()调用的方法中AquireToken(),我只得到自定义异常。

我很困惑,因为在其他项目中我应该是类似的,并且没有包装例外......

它取决于什么,如果 AggregateException 的异常是否被包装,我该如何避免它?

0 投票
1 回答
35 浏览

c# - OutOfMemoryException 与另一个异常结合

我正在调查内存问题,发现这是今天的日志:

System.AggregateException:发生一个或多个错误。---> System.ArgumentException:引发了“System.OutOfMemoryException”类型的异常。无法在期间列中存储 <15.02.2017 00:00:00>。预期类型是字符串。---> System.OutOfMemoryException:引发了“System.OutOfMemoryException”类型的异常。

以前OutOfMemoryException的日志没有内部异常

无法在期间列中存储 <15.02.2017 00:00:00>。预期类型是字符串。

一个导致另一个,或者这个异常与OutOfMemoryException? 我不是在问如何修复这些错误,而是为什么它们似乎捆绑在这个日志语句中而不是其他日志语句中。任何解释/参考/想法?

顺便说一句,这是一个 .Net Framework 应用程序,在具有 16 GB RAM 的 Windows 2012 Server 上作为 Windows 服务运行,运行大计算,因此有很多可以改进的地方。我的任务是改进代码,这样一开始就不会使用太多内存,我希望能正确理解上面的日志语句。

0 投票
1 回答
58 浏览

c# - 如何列出<>来自 ArgumentException 的异常并抛出 AggregateException

我想要一次所有异常消息,例如:在有效负载对象中,如果我不提供AccountNameand Note。它应该报告我注意不能为空帐户名不能为空我该怎么做?

我想制作一个所有这些消息的列表,然后抛出一个Agregateexception. 我怎样才能做到这一点?