如何编写简单的ErrorMessage函数

时间:2016-10-12 11:45:53

标签: c# asp.net error-handling try-catch

我试图理解,如何编写简单的错误消息函数,如果在文本框中输入字符串而不是数字,则会产生反应。

假设我想计算值1和值2,但如果输入了字符串,则在标签中显示错误。

示例

1 + 1 = 2

a + 1 =错误

我的代码

Calculate.cs

public static string ErrorMessage()
    {
        string msg = "";
        try
        {
            //do sth
        }
        catch (Exception ex)
        {
            msg = "Wrong value";
        }
        return msg;
    }

Calculator.asxc

protected void Button1_Click(object sender, EventArgs e)
    {
    try
        {

            //calculate - works
        }
    catch
        {
             Error.Text = Calculate.ErrorMsg();
        }

也尝试过这样,但似乎没有工作:

Calculate.cs

public static bool ErrorMessage(string value1, string value2)
    {
        bool check = true;
        string error;
        if (value1 != "" && value2 != "")
        {
            check = true;
        }
        if (value1 =="" || value2 =="")
        {
            check = false;
            error = "Error!";
        }
        return check;    
    }

Calculator.asxc

protected void Button1_Click(object sender, EventArgs e)
    {
    try
        {

            //calculate - works
        }
        //
        catch
        {
        bool res = false;

            res = Calculate.ErrorMessage(textBox1.Text, textBox2.Text);

            Error.Text = res.ToString();
        }

我知道第二种方法没有检查数字,但我只是试图实现一些逻辑,看看是否有效..但没有什么

我迷路了......请帮忙

1 个答案:

答案 0 :(得分:2)

据我了解,您使用数字广告希望您的应用程序在用户输入字符串而不是数字时显示错误消息。

您应该使用Int32.Parse()Int32.TryParse()方法。 有关ParseTryParse的更多信息,请点击此处。

方法 TryParse 非常好,因为如果它不能将字符串解析为整数,它就不会抛出错误,而是返回false。

这里是如何在类中使用此方法的示例,更改Button1_Click方法如下:

protected void Button1_Click(object sender, EventArgs e)
{
    int a;
    int b;

    // Here we check if values are ok
    if(Int32.TryParse(textBox1.Text, out a) && Int32.TryParse(textBox2.Text, b))
    {
        // Calculate works with A and B variables
        // don't know whats here as you written (//calculate - works) only
    }
    // If the values of textBoxes are wrong display error message
    else
    {
        Error.Text = "Error parsing value! Wrong values!";
    }
}

如果您需要使用 ErrorMessage 方法,那么您可以在此处更改 ErrorMessage 方法,但这更复杂,第一个示例更容易:< / p>

public static string ErrorMessage(string value1, string value2)
{
    int a;
    int b;

    // If we have an error parsing (note the '!')
    if(!Int32.TryParse(value1, out a) || !Int32.TryParse(value2, b))
    {
        return "Error parsing value! Wrong values!";
    }

    // If everything is ok
    return null;
}

希望这会有所帮助,请询问您是否需要更多信息。