C++ WinForms: Обработка ошибок и исключений

Обработка деления на ноль

Деление на ноль приводит к фатальной ошибке. В методе Button_equal_Click добавим проверку второго числа перед делением. Если оно равно нулю, вместо деления выводится всплывающее окно с сообщением об ошибке, созданное с помощью MessageBox.Show(). Параметры метода:

  • this: всплывающее окно отображается внутри текущего окна.
  • Текст сообщения (например, «Действие запрещено»).
  • Текст заголовка (например, «Error»).
  • MessageBoxButtons.OK: кнопка «OK».
  • MessageBoxIcon.Error: иконка ошибки.

При делении на ноль переменной результата (rs) присваивается 0.

Изменение цвета текста при ошибке

Для наглядности, цвет текста в лейбле при ошибке меняется на темно-красный (Color.DarkRed), а при вводе новых чисел – на белый (Color.White). Используется свойство ForeColor лейбла.

Обработка отсутствия математической операции

Ввод числа и нажатие «равно» без выбора операции приводит к некорректному результату. Добавим проверку на пустую строку в поле userAction. Так как прямое сравнение с пустой строкой невозможно, userAction сравнивается с пробелом (начальное значение userAction – пробел). Если userAction равен пробелу, выполнение прерывается с помощью return.

Очистка калькулятора после вычисления

После вычисления ввод нового числа добавляется к предыдущему результату. Добавим булево поле is_equal, устанавливаемое в true после вычисления. В Button_number_Click добавим проверку: если is_equal равно true или текстовое поле содержит «0», содержимое лейбла очищается перед вводом нового числа. is_equal устанавливается в false после обработки ввода числа.

Калькулятор теперь корректно обрабатывает деление на ноль, отсутствие операции и очищает предыдущий результат перед вводом нового числа. Обработка остальных кнопок будет рассмотрена в следующем уроке.

Что будем искать? Например,программа