Crear un controlador de excepciones personalizado

C++Beginner
Practicar Ahora

Introducción

En este desafío, desarrollarás un sistema robusto de gestión de excepciones para sensores de temperatura utilizados en investigación científica. El objetivo es crear una clase personalizada llamada TemperatureException que herede de std::runtime_error e implementar una función de validación que lance esta excepción cuando se detecten lecturas de temperatura fuera de los rangos permitidos.

Este es un Desafío (Challenge), que a diferencia de un Laboratorio Guiado, requiere que intentes completar la tarea de forma independiente en lugar de seguir pasos detallados. Los desafíos suelen tener una dificultad mayor. Si encuentras obstáculos, puedes consultar con Labby o revisar la solución. Los datos históricos muestran que este es un desafío de nivel principiante con una tasa de aprobación del 94%. Ha recibido una valoración positiva del 100% por parte de los estudiantes.

Crear un controlador de excepciones de temperatura

En la investigación científica, la precisión en la monitorización térmica es fundamental. Tu tarea consiste en desarrollar un sistema de control de errores para sensores de temperatura que sea capaz de detectar e informar sobre lecturas anómalas.

Tareas

Completa los siguientes puntos pendientes (TODO) en la plantilla de código proporcionada:

  1. Implementar el constructor de TemperatureException:

    • Inicializar la clase base con el mensaje de error correspondiente.
    • Almacenar el valor de la temperatura no válida.
  2. Implementar la función validateTemperature:

    • Comprobar si la temperatura se encuentra dentro del rango de [-50°C, 100°C].
    • Lanzar la excepción TemperatureException en caso de valores fuera de rango.

Requisitos

  • Rango de temperatura permitido: de -50°C a 100°C.
  • Mensaje de error: "Temperature Error: Invalid temperature reading".
  • Se debe respetar la estructura de clases proporcionada.
  • No se debe modificar la función main().

Ejemplos

Compila y ejecuta el código para probar la función de validación. El programa debería lanzar una TemperatureException ante lecturas incorrectas.

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

Temperatura válida:

Testing valid temperature:
Temperature 25.0°C is valid.

Temperatura no válida:

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

Consejos

  • Utiliza el constructor de std::runtime_error para definir el mensaje de error descriptivo.
  • Almacena la temperatura errónea como un miembro privado dentro de la clase de excepción.
  • Crea un método de acceso (getter) para recuperar el valor de la temperatura que causó el error.
✨ Revisar Solución y Practicar

Resumen

En conclusión, este desafío te ha permitido crear una clase de excepción personalizada TemperatureException basada en std::runtime_error e implementar una lógica de validación que garantiza la integridad de los datos. Este enfoque es fundamental para desarrollar sistemas de monitorización robustos y fiables en entornos de investigación científica.