Калькулятор и обработка ошибок

Цель: Цель домашнего задания - закрепить знания о механизме работы с исключениями, полученным в ходе вебинара. Студенты научатся писать код, обрабатывающий исключения познакомятся с различными примерами встроенных исключений.

Описание/Пошаговая инструкция выполнения домашнего задания:

Основное задание
Нужно написать программу-калькулятор, которая обрабатывает простое выражение и выводит на следующей строке его результат. При этом она должна корректно отрабатывать различные исключительные ситуации и ошибки. Сама программа для ввода данных должна содержаться в функции Calculate(), то есть программа будет иметь вид Выражение может быть сложением, вычитанием, умножением, делением двух целых чисел (тип int). Формат выражения ЧИСЛО-ОПЕРАНД ОПЕРАТОР ЧИСЛО-ОПЕРАНД В выражении между оператором и числам должен быть пробел. После ввода выражения и нажатия ENTER на следующей строке выводится ответ в формате ответ: результат выражения Ввод выражений допускается до тех пор, пока пользователь не введет слово "стоп" При преобразовании строк в числа не использовать функцию TryParse(), только Parse() В программе должны быть следующие функции Функция сложения чисел: принимает на вход два числа и выводит результат сложения Функция вычитания чисел: принимает на вход два числа и выводит результат вычитания Функция умножения чисел: принимает на вход два числа и выводит результат умножения Функция деления чисел: принимает на вход два числа и выводит результат деления Эти функции никакого текста, кроме Ответ: выводить не должны Функции Sum, Sub, Mul и Div внутри могут вызывать исключения, но обрабатываться они должны на уровне функции Calculate.
Особенности работы программы
Каждый вид исключения обрабатывается отдельным catch Пробрасываемые исключения не должны содержать сообщения, которые мы выводим в консоль, что выводить мы определяем по типу исключений вся доп. информация информация ИСКЛЮЧЕНИЯ, КОТОРЫЕ МОГУТ ВОЗНИКНУТЬ В ОБРАБОТЧИКЕ ВХОДНОГО ВЫРАЖЕНИЯ Кейс 1 Если у выражения нет оператора, выбросить исключение и вывести сообщение белым на красном фоне: Укажите в выражении оператор: +, -, *, / Кейс 2 Если оператор не соответствует +, -, * или / , выбросить исключение и вывести сообщение сообщение белым на зеленом фоне: Я пока не умею работать с оператором оператор Кейс 3 Если выражение не проходит по шаблону (нет пробелов между числами и оператором), выбросить исключение и вывести сообщение белым на красном фоне: Выражение некорректное, попробуйте написать в формате a + b a * b a - b a / b Кейс 4 Если какой-то операнд не является числом, выбросить исключение и вывести сообщение белым на красном фоне: Операнд операнд не является числом
ИСКЛЮЧЕНИЯ, КОТОРЫЕ МОГУТ ВОЗНИКНУТЬ ВНУТРИ ФУНКЦИЙ Sum, Sub, Mul, Div
Кейс 5 При делении на 0, выбросить исключение и вывести сообщение белый текст на фиолетовом фоне Деление на ноль Кейс 6 Если при вычислении выражения получился ответ 13, вывести ответ как обычно, но после этого выбросить исключение и вывести белый текст на зеленом фоне: Вы получили ответ 13! Остальные ошибки Кейс 7 - Все остальные исключения Во всех остальных ошибках - вывести текст: Я не смог обработать ошибку И завершить работу программы калькулятора
Доп. задание 1
При написании своих исключений Для кейсов 1-5 попробуйте передавать аргумент для вывода текста как отдельном поле собственного исключения, так и в поле Data (для разных исключений - разный способ)
Доп. задание 2
В случае возникновения исключений из **Кейс 7** пробросить его дальше и обработать в `main`, выведя текст В калькуляторе произошла ошибка: текст ошибки
Задание со звездочкой

Если результат выражения в целом типе не помещается в тип int (например 2000000000000 * 10), выбросить исключение и вывести сообщение белым на синем фоне Результат выражения вышел за границы int