实现没有用户输入的异常

时间:2015-10-14 15:07:41

标签: c# exception

下面是if语句输入框到无效凭据,我试图创建一个异常方法,如果在文本框中没有检测到输入,将输出一个消息框

使用下面的代码,当没有输入任何内容时,它将输出消息“not authenticated”以及IsNullOrWhiteSpace的消息。我试图得到它,以便如果没有输入任何内容,将出现一个消息框,询问用户名和密码,但我不希望消息“未经过身份验证”,如果这有意义吗?

我如何在下面的代码中实现它?

public void button1_Click(object sender, EventArgs e)
{
    var username = textBox2.Text;
    var password = textBox1.Text;

    bool isvalid = auth.ValidateCredentials(username, password);
    {
        if (isvalid == true)
        {
            MessageBox.Show("Authenticated!");
        }
        else
        {
            MessageBox.Show("Not Authenticated!");
        }

        if (isvalid = string.IsNullOrWhiteSpace(username))
        {
            MessageBox.Show("Username is empty, please enter a username!");
        }
        if (isvalid = string.IsNullOrWhiteSpace(password))
        {
            MessageBox.Show("Password is empty, please enter a password!");
        }
    }
}

2 个答案:

答案 0 :(得分:1)

在尝试验证之前执行这些检查,如果其中任何一个为空,则退出该方法:

if (string.IsNullOrWhiteSpace(username))
{
    MessageBox.Show("Username is empty, please enter a username!");
    return;
}
if (string.IsNullOrWhiteSpace(password))
{
    MessageBox.Show("Password is empty, please enter a password!");
    return;
}

bool isvalid = auth.ValidateCredentials(username, password);
if (isvalid)
{
    MessageBox.Show("Authenticated!");
}
else
{
    MessageBox.Show("Not Authenticated!");
}

请注意,我已将isValid语句中的作业删除至if,因为这是不必要的。我还在{ }分配后删除了bool isValid{ }用于定义新范围,通常在if或循环语句之后。他们在这里伤害任何事情,但也没有必要。

答案 1 :(得分:0)

在你的逻辑中我会使用抛出异常:

throw new System.ArgumentException("password cannot be null", "original");

哦,在你的if语句中,我们应该比较运算符==而不是分配=