Создание пользовательского обработчика исключений

C++Beginner
Практиковаться сейчас

Введение

В рамках этого испытания вам предстоит разработать надежную систему обработки исключений для температурных датчиков, используемых в научных исследованиях. Ваша цель — создать пользовательский класс TemperatureException, наследуемый от std::runtime_error, и реализовать функцию валидации температуры, которая будет генерировать это исключение при обнаружении некорректных данных.

Создание обработчика исключений температуры

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

Задачи

Выполните следующие пункты (TODO) в предоставленном шаблоне кода:

  1. Реализуйте конструктор TemperatureException:

    • Инициализируйте базовый класс сообщением об ошибке.
    • Сохраните некорректное значение температуры.
  2. Реализуйте функцию validateTemperature:

    • Проверьте, входит ли температура в диапазон от -50°C до 100°C.
    • Сгенерируйте исключение TemperatureException, если значение выходит за рамки диапазона.

Требования

  • Допустимый диапазон температур: от -50°C до 100°C.
  • Сообщение об ошибке: "Temperature Error: Invalid temperature reading".
  • Необходимо использовать предложенную структуру классов.
  • Не вносите изменения в функцию main().

Примеры

Скомпилируйте и запустите код для проверки функции валидации. Программа должна выбрасывать исключение TemperatureException при вводе некорректных данных.

g++ temperature_exception.cpp -o temperature_exception
./temperature_exception

При корректной температуре:

Testing valid temperature:
Temperature 25.0°C is valid.

При некорректной температуре:

Temperature Error: Invalid temperature reading
Invalid Temperature: 150°C

Подсказки

  • Используйте конструктор std::runtime_error для установки сообщения об ошибке.
  • Сохраните недопустимое значение температуры в закрытом (private) поле класса исключения.
  • Создайте метод-геттер для получения значения ошибочной температуры.
✨ Проверить решение и практиковаться

Резюме

Подводя итог: в этом испытании вы создали пользовательский класс TemperatureException на базе std::runtime_error и реализовали логику валидации данных. Это позволило построить надежную систему обработки ошибок для температурных датчиков, что является важным навыком при разработке программного обеспечения для научных исследований.