gpt4 book ai didi

c# - 第一次抛出 SocketException,但我的 catch 不起作用

转载 作者:行者123 更新时间:2023-11-30 15:39:10 25 4
gpt4 key购买 nike

我有一个 WCF 应用程序,有时会执行长时间运行的查询。我在客户端创建了代码,它了解套接字何时发生超时,并将采取措施稍后重新轮询服务器以获取答案。系统会在 TimeoutException 发生之前抛出许多第一次机会异常,包括 SocketException。过去,在我捕获并处理它们之前,第一次机会异常会大大降低我的应用程序的速度。

我想摆脱这些第一次出现的异常,所以我创建了一个 try-catch block 来处理 SocketException 并在 VS2010 中打开异常并重新运行代码。当我这样做时,我看到调试器告诉我发生了 SocketException,但我的 catch block 从未进入。 (见下文)

enter image description here

我发现了许多类似的帖子,包括 C# SocketException doesn't get caught但是我找到的答案都没有解决如何捕获异常,或者我是否应该担心它。

所以我的问题是:

1) 我应该担心这些第一次机会异常吗?

2) 如果是这样,我如何让系统捕捉到它们?

最佳答案

您可以附加一个名为 AppDomain.FirstChanceException 事件的事件

这是您连接它的方式:

  AppDomain.CurrentDomain.FirstChanceException += FirstChanceHandler;

它在应用程序运行的应用程序域上,这里是它的文档。 http://msdn.microsoft.com/en-us/library/system.appdomain.firstchanceexception.aspx

关于c# - 第一次抛出 SocketException,但我的 catch 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10720109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com