Introdução
Neste desafio, você desenvolverá um sistema robusto de tratamento de exceções para sensores de temperatura utilizados em pesquisas científicas. O objetivo é criar uma classe personalizada chamada TemperatureException que herda de std::runtime_error e implementar uma função de validação que dispare essa exceção sempre que forem detectadas leituras de temperatura fora dos padrões aceitáveis.
Criar um Manipulador de Exceções de Temperatura
Na pesquisa científica, o monitoramento preciso da temperatura é fundamental. Sua tarefa é desenvolver um sistema de tratamento de erros para sensores de temperatura capaz de detectar e reportar leituras inválidas.
Tarefas
Complete os seguintes itens (TODOs) no código modelo:
Implementar o construtor da classe
TemperatureException:- Inicializar a classe base com a mensagem de erro apropriada.
- Armazenar o valor da temperatura que causou a falha.
Implementar a função
validateTemperature:- Verificar se a temperatura está dentro do intervalo de [-50°C, 100°C].
- Lançar a exceção
TemperatureExceptioncaso o valor seja inválido.
Requisitos
- Intervalo de temperatura permitido: -50°C a 100°C.
- Mensagem de erro: "Temperature Error: Invalid temperature reading".
- É obrigatório utilizar a estrutura de classe fornecida.
- Não modifique a função
main().
Exemplos
Compile e execute o código para testar a função de validação. O programa deve lançar uma TemperatureException para leituras fora do intervalo.
g++ temperature_exception.cpp -o temperature_exception
./temperature_exception
Temperatura válida:
Testing valid temperature:
Temperature 25.0°C is valid.
Temperatura inválida:
Temperature Error: Invalid temperature reading
Invalid Temperature: 150°C
Dicas
- Utilize o construtor de
std::runtime_errorpara definir a mensagem de erro. - Armazene a temperatura inválida como um membro privado da classe de exceção.
- Crie um método "getter" para recuperar o valor da temperatura que gerou o erro.
Resumo
Em resumo, este desafio exigiu a criação de uma classe de exceção personalizada TemperatureException herdando de std::runtime_error e a implementação de uma lógica de validação. O objetivo foi consolidar o conhecimento sobre o desenvolvimento de sistemas robustos de tratamento de erros, essenciais para garantir a integridade de dados em sistemas de monitoramento científico.



