尝试捕获块损害代码

时间:2018-07-16 03:37:22

标签: c# udp try-catch udpclient

我写了一个简单的UDP框架,它工作得很好。将代码包装在try / catch块中后,发送函数停止工作-没有编译器或运行时错误,当我删除try / catch语句时,发送函数再次开始工作。

我的所有其他方法,包括接收方法,似乎都不受try / catch语句的影响。考虑下面的代码:

public static AsyncCallback callback = new AsyncCallback(SendCallback);

public static void Send(string data) {
    try {
        byte[] bytes = Encoding.ASCII.GetBytes(data);
        socket.BeginSend(bytes, bytes.Length, callback, socket);
    } catch (Exception e) {
        Console.WriteLine("Error: " + e.StackTrace);
        Console.WriteLine("Message: " + e.Message);
    }
}

public static void SendCallback(IAsyncResult ar) {
    try {
        socket.EndSend(ar);
    } catch (Exception e) {
        Console.WriteLine("Error: " + e.StackTrace);
        Console.WriteLine("Message: " + e.Message);
    }
} 

我很好奇为什么会这样。

0 个答案:

没有答案