gpt4 book ai didi

c# - IntelliTrace 捕获的静默异常

转载 作者:行者123 更新时间:2023-11-30 22:43:23 25 4
gpt4 key购买 nike

下午好

我在使用 WCF 和 IntelliTrace 时遇到了一个奇怪的问题。我有一个应用程序,我正在使用 basicHttpBinding 使用本地托管的 WCF 端点(VS2010 中内置的开发服务器)进行测试。应用程序一直在正常运行:没有异常进入应用程序并且所有 WCF 调用都在返回数据。

为了好玩,我决定看一下 IntelliTrace 输出,并注意到我对 WCF 的第一次调用抛出了两个异常:

Exception:Thrown: "No connection could be made because the target machine actively refused it" (System.Net.Sockets.SocketException)
A System.Net.Sockets.SocketException was thrown: "No connection could be made because the target machine actively refused it"
Exception:Caught: "No connection could be made because the target machine actively refused it" (System.Net.Sockets.SocketException)
A System.Net.Sockets.SocketException was caught: "No connection could be made because the target machine actively refused it"

我已将应用程序简化为一个微不足道的用例:

    ServiceClient client = new ServiceClient();
string[] output = client.LegacyCheck("username");
Console.WriteLine(output[0]);
Console.WriteLine(client.GetData(65));

我得到了同样的行为。第二次调用没有与之关联的异常。

我很疑惑。如果连接被拒绝,那么为什么异常不弥补应用程序呢?为什么在 2 次尝试失败后它会成功?

感谢任何帮助!

最佳答案

值得一提的是,我在 IronPython/WPF 应用程序中也注意到了这种行为。我最终意识到 Intellitrace 只是向您展示在正常操作期间引发和捕获的所有异常,即使它是 BCL 或其他库的一部分。

当然,您只需要担心未处理的异常(在它们中断您的执行后,您通常会在 IntelliTrace 中看到这些异常是一长串 Thrown: Caught: Thrown: Caught: 。 ...一直到 Thrown: 这将是最后一行,因为未捕获到异常。

我愿意打赌的是,WCF 代码try 首先会处理一些事情,捕获 SocketExceptions,然后继续其愉快的方式。如果没有 IntelliTrace,您永远不会看到这个 :)

关于c# - IntelliTrace 捕获的静默异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3980951/

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