在我的C#/ WPF / .Net 4.5程序中,我正在尝试在套接字上执行 Disconnect(),当我这样做时,我得到了一个
“System.Net.Sockets.SocketException”类型的第一次机会异常 发生在System.dll
中
。 。 。在Visual Studio输出窗口中。
我的代码包含在try / catch中,但它永远不会落入catch中。 。 。
try
{
if (_TCPConn.Connected)
{
_TCPConn.Shutdown(SocketShutdown.Both);
_TCPConn.Disconnect(true); // SocketException
}
}
catch (Exception e)
{
. . .
}
到目前为止,Socket工作正常 - 它用于与一些制造机器进行通信,所有这些工作都很完美。我在使用和不使用 Shutdown()时尝试了相同的结果。如果我让程序在第一次机会异常后继续运行,整个程序就会消失并退出调试器。然后输出窗口中的消息只是说
程序'[0xE6C] ProcFacTest.vshost.exe:Managed(v4.0.30319)'有 退出代码0(0x0)。
我如何找出造成这种情况的原因?
答案 0 :(得分:20)
第一步是禁用“Just My Code”。这可能不是必需的,但IDE可能会将您的用户代码与系统代码混淆,从而抑制异常。我通常在进行异常调试时执行此操作
下一步是告诉Visual Studio在抛出该特定异常时中断。