C#Try-catch没有捕获异常

时间:2013-11-21 02:19:28

标签: c# sockets exception error-handling try-catch

我有一个令人困惑的问题,我无法解决它。我有几行代码,在某些时候,Send函数会抛出System.Net.Sockets.SocketException。但是,即使try具有catch块,它也不会捕获异常并继续正常流程。当我尝试运行需要抛出相同异常的情况时,catch会很好地捕获它。

我尝试过的事情:

  • 尝试更改VS调试设置'仅为我的代码启用',但是 它已被禁用。
  • 我尝试了调试和发布模式。
  • 我尝试使用普通的异常捕获器,但它们都没有工作。

以下是代码,在某些时候,服务器的连接关闭,c Socket断开连接。它返回System.Net.Sockets.SocketException,但是下面的catch不能捕获它。

            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!");
            }

1 个答案:

答案 0 :(得分:1)

你没有得到例外的原因...... ......是不是没有例外!

TCP / IP本身不一定会“注意到”断开连接......除非您明确尝试写入已关闭的套接字。

绝对查看Beej的网络编程指南:

另见: