C#异常导致我的表单关闭

时间:2013-05-31 12:03:35

标签: c# exception formatexception

当我抛出FormatException时,表单似乎总是关闭。有没有办法表格不会关闭,所以我可以在表格上采取行动?

示例:

    int postcodeNumeriek = 0;
    if (int.TryParse(postcode.Text, out postcodeNumeriek) == false)
    {
        throw new FormatException("De postcode heeft een verkeerd formaat");
    }

    cmd.Parameters.AddWithValue("@naam", familienaam.Text);
    cmd.Parameters.AddWithValue("@voornaam", voornaam.Text);
    cmd.Parameters.AddWithValue("@straat", straat.Text);
    cmd.Parameters.AddWithValue("@nummer", nummer.Text);
    cmd.Parameters.AddWithValue("@bus", bus.Text);
    cmd.Parameters.AddWithValue("@postcode", postcode.Text);
    cmd.Parameters.AddWithValue("@gemeente", gemeente.Text);
    cmd.Parameters.AddWithValue("@telefoonnummer", telefoonnummer.Text);
    cmd.Parameters.AddWithValue("@btwnummer", btwNummer.Text);
    cmd.Parameters.AddWithValue("@nieuwsbrief", nieuwsbrief.Checked);
    cmd.Parameters.AddWithValue("@emailadres", emailAdres.Text);
    cmd.Parameters.AddWithValue("@klantnummer", klantID);

    cmd.ExecuteNonQuery();

    cmd = new SqlCeCommand("UPDATE Klanten SET Actief=0 WHERE ID='" + recordID + "'", Klantenbeheer.HuidigeDatabaseVerbinding);
    cmd.ExecuteNonQuery();
}
catch (FormatException e)
{
    postcode.Focus();
}

在这个例子中,我希望我的邮政编码在格式不正确时生成异常。当发生这种情况时,表单就会关闭,所以postcode.Focus();不会被执行。

也许它确实如此,但它不可见。

1 个答案:

答案 0 :(得分:0)

Ik denk dat het handiger是als je die FormatException weg haalt。 En de textbox bijvoorbeeld vult在staat dat het formaat niet klopt中遇见了wat tekst waar。

我认为删除FormatException会更好。 tryparse很好。但只需在文本框中填入一些信息即可。

int postcodeNumeriek = 0;

if (int.TryParse(postcode.Text, out postcodeNumeriek) == false)
{
    postcode.Text ="format postalcode incorrect";
}

在这些情况下,使用Try语句总是好的。