将适当的参数传递给方法时引发的异常
本文关键字:异常 方法 参数传递 | 更新日期: 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子句中使用异常消息通常是有帮助的。:)