«Форматирование исключений необработано» в следующей программе Windows Phone 7.1 - PullRequest
0 голосов
/ 27 ноября 2011

В настоящее время я делаю небольшую заявку для расчета BMI . Программа компилируется нормально, но я получаю ошибку времени выполнения

Исключение формата необработано

в этой строке:

height = float.Parse(textBox1.Text);

Строка является частью функции:

private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{ 
    float height;

    height = float.Parse(textBox1.Text);
    height = height*height;
}

1 Ответ

1 голос
/ 27 ноября 2011

Вы не сказали, что такое в текстовом поле, когда вы анализируете его. Возможно, он пуст или пользователь набрал что-то вроде «Фред». Вы всегда должны предполагать, что ввод может быть недействительным:

private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
 { 
    float height;

    if (!float.TryParse(textBox1.Text, out height))
    {
        // Indicate to the user that the input is invalid, and stop processing
        // at this point. For example, you may want to highlight the textbox with
        // a red box. Return at the end of the block.
    }

    // It parsed correctly: continue...
    height = height*height;
    ...
}

(Вероятно, это будет немного отличаться в подходе MVVM, но вы все равно захотите использовать float.TryParse до теста пользовательского ввода перед его принятием.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...