将适当的参数传递给方法时抛出异常

时间:2016-08-11 12:36:01

标签: c# string reference nullreferenceexception

我正在审核语音聊天应用程序的源代码。

这里我想运行服务器程序,以便任何客户端都可以联系服务器进行语音聊天。要运行我的服务器程序,我必须传递我将用于语音聊天的服务器名称,端口号和网络接口,在传递必需的参数后,我必须调用ServerStart方法,这是通过在设计视图中单击Start Checkbox来完成的。如果user没有传递适当类型的参数,然后通过调用ShowError()方法显示错误。

现在,当我传递serverName,端口号和网络接口时,serverName变量引用为null而不是传递的serverName参数。

  

为什么在运行服务器程序时抛出异常,异常为“未找到源,但无法搜索部分或全部事件日志。无法访问的日志:安全性。”

 public partial class ServerWindow
{
    private ChatServer server;
    public delegate void SetListBoxItem(string str, string type);
    public ServerWindow()
    {
        InitializeComponent();
        ObtainNetworkInterfaces();
    }


    private void cbStartStop_Checked(object sender, RoutedEventArgs e)
    {
        if (cbStartStop.IsChecked == true)
        {
            // validate the port number
            try
            {
                var port = Int32.Parse(tbPortNumber.Text);

                server = new ChatServer(port, cbInterfaces.SelectedItem, tbServerName.Text);
                server.ClientConnected += ServerOnClientConnected;
                server.ClientDisconnected += ServerOnClientDisconnected;
                var serverName = tbServerName.Text;
                if (string.IsNullOrWhiteSpace(serverName))
                {
                    ShowError();
                }
                else
                {
                    server.StartServer();
                    SetControls(false);
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        else
        {
            if (server == null)
                return;
            server.StopServer();
            SetControls(true);
        }
    }

    private void ShowError()
    {
        MessageBox.Show(@"Please enter valid port number and/or server name");
        cbStartStop.IsChecked = false;
    }

1 个答案:

答案 0 :(得分:1)

问题似乎不在您发布的代码中。在我们聊天之后,我建议您查看此post尝试接受的答案。我觉得它会解决你的问题。

在catch子句中使用异常消息通常很有帮助。 :)