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

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp(("C++")) -.-> cpp/AdvancedConceptsGroup(["Advanced Concepts"]) cpp/OOPGroup -.-> cpp/classes_objects("Classes/Objects") cpp/OOPGroup -.-> cpp/inheritance("Inheritance") cpp/AdvancedConceptsGroup -.-> cpp/exceptions("Exceptions") subgraph Lab Skills cpp/classes_objects -.-> lab-446292{{"Создание пользовательского обработчика исключений"}} cpp/inheritance -.-> lab-446292{{"Создание пользовательского обработчика исключений"}} cpp/exceptions -.-> lab-446292{{"Создание пользовательского обработчика исключений"}} end

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

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

Задачи

Выполните следующие задачи (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 для установки сообщения об ошибке
  • Сохраните недействительную температуру как частный член класса исключения
  • Создайте метод-геттер для получения значения недействительной температуры
✨ Проверить решение и практиковаться

Резюме

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