Criar um Manipulador de Exceções Personalizado

C++Beginner
Pratique Agora

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:

  1. 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.
  2. Implementar a função validateTemperature:

    • Verificar se a temperatura está dentro do intervalo de [-50°C, 100°C].
    • Lançar a exceção TemperatureException caso 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_error para 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.
✨ Verificar Solução e Praticar

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.