尝试捕获文本框中输入的特定字符

时间:2018-05-14 09:08:46

标签: c# error-handling

我的代码目前看起来像这样:

private void logBtn1_Click(object sender, EventArgs e)
{
    String email = textBox1.Text;
    String password = textBox2.Text;

    if (email.Contains("@"))
    {
        MessageBox.Show("Valid email!");
    }
    else
    {
        MessageBox.Show("Please enter a valid email address");
    }
}

如果电子邮件字符串包含"@"字符,我希望能够使用try-catch显示错误消息 - 这可能吗?我知道这可能不是一个很好的方法,检查一个@字符并不是一个很好的方法来验证输入是一个合法的电子邮件,但我不知道如果可能的话,仍然希望能够通过try catch执行此操作。

2 个答案:

答案 0 :(得分:1)

  

我仍然希望能够尝试使用try catch执行此操作

你可以,但你不应该。 try...catch块用于不受控制的异常,例如磁盘已满,因此无法写入文件或类似情况。你不想使用它,因为它会因你的表现而恶化。

如果您可以在没有try...catch的情况下对其进行编码,那么您应该这样做。当我查看您的代码时,我认为它几乎可以做的就是使检查正确。我只想添加一个空检查。

答案 1 :(得分:1)

如果您必须使用try catch,您可以执行以下操作:

void ValidateEmail(string email) {
    if (!email.Contains("@"))
        throw new FormatException();
}

并在try catch内围绕对该代码的调用。

但是,我真的找不到你想要这样做的理由。