将适当的参数传递给方法时引发的异常

本文关键字:异常 方法 参数传递 | 更新日期: 2023-09-27 18:02:10

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

这里我想运行服务器程序,这样任何客户端都可以联系到服务器进行语音聊天。为了运行我的服务器程序,我必须传递服务器名称,端口号和我将用于语音聊天的网络接口,在传递所需的参数后,我必须调用ServerStart方法,这是通过单击设计视图中的开始复选框来完成的。如果用户没有传递适当类型的参数,则通过调用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;
    }

将适当的参数传递给方法时引发的异常

问题似乎不在你发布的代码中。在我们聊天之后,我建议你看看这篇文章,尝试一下被接受的答案。我觉得这会解决你的问题。

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