gpt4 book ai didi

c# - 如何在 Socket 上调试这个第一次机会异常?

转载 作者:太空狗 更新时间:2023-10-29 22:05:37 24 4
gpt4 key购买 nike

在我的 C#/WPF/.Net 4.5 程序中,我试图在套接字上执行 Disconnect(),当我这样做时,我得到了一个

A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll

. . .在 Visual Studio 输出窗口中。

我的代码包含在 try/catch 中,但它从未落入 catch 中。 . .

    try
{
if (_TCPConn.Connected)
{
_TCPConn.Shutdown(SocketShutdown.Both);
_TCPConn.Disconnect(true); // SocketException
}
}
catch (Exception e)
{
. . .
}

到目前为止,Socket 工作正常 - 它用于与一些制造机器通信,所有这些东西都工作得很好。我在使用和不使用 Shutdown() 的情况下都进行了尝试,结果相同。如果我让我的程序在第一次机会异常后继续运行,整个程序就会消失并退出调试器。然后输出窗口中的消息只是说

The program '[0xE6C] ProcFacTest.vshost.exe: Managed (v4.0.30319)' has exited with code 0 (0x0).

我如何找出造成这种情况的原因?

最佳答案

第一步是禁用“Just My Code”。这可能不是必需的,但 IDE 可能会将您的用户代码与系统代码混淆并因此抑制异常。我一般在做异常调试的时候会这样做

  • 工具 -> 选项 -> 调试
  • 取消选中“启用 Justy 我的代码调试”

下一步是告诉 Visual Studio 在抛出特定异常时中断。

  • 调试 -> 异常
  • 展开“公共(public)语言运行时异常”,直到到达“System.Net.Sockets.SocketException”
  • 检查此异常的“抛出”

关于c# - 如何在 Socket 上调试这个第一次机会异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006302/

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