实现无用户输入的异常

本文关键字:异常 输入 用户 无用 实现 | 更新日期: 2023-09-27 18:17:45

下面是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!");
        }
    }
}

实现无用户输入的异常

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

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!");
}

请注意,我在if语句中删除了对isValid的赋值,因为它是不必要的。在bool isValid分配之后,我还删除了{ }{ }用于定义一个新的作用域,通常在if或循环语句之后。它们在这里没有伤害任何东西,但也没有必要。

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

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

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