我有一个令人困惑的问题,我无法以任何方式解决它。我有几行代码,在某些时候,Send
函数会抛出一个System.Net.Sockets.SocketException
。但是,即使try有catch块,它也不会捕获异常并继续正常流程。当我尝试运行需要抛出相同异常的情况时,catch捕获它非常好。C#Try-catch没有发现异常
事情我已经尝试:
- 试图改变VS调试设置“只启用对于我的代码”,但 它已经被禁用。
- 我试过调试和发布模式。
- 我试过使用一般的异常捕获器,但都没有工作。
这里是代码,在某些时候,从服务器的连接关闭和c
套接字断开连接。它返回System.Net.Sockets.SocketException
,但下面的捕获不捕获它。
try
{
// Some code here . . .
c.Send(clientData);
Print("Started uploading the file " + uploadFilename + ".");
upBox.Text = "";
Print("Finished uploading the file " + uploadFilename + ".");
}
catch (System.Net.Sockets.SocketException)
{
Print("You are disconnected from server!");
}
如果不捕捉异常,你怎么知道它发生?你从Windows获得“程序停止工作”的事情吗? – Steve
我看到从手表菜单中突破和检查引发的异常。在监视面板中,当我编写c.send(clientData)时,我可以看到异常,而不是发送的字节数。 –
因此,程序未运行时发生异常。这就是你说例外发生的“某点”。你的程序不会导致异常。在这种情况下,你想要做的事可能无效。 – Steve