カスタム例外ハンドラーの作成

C++Beginner
オンラインで実践に進む

はじめに

このチャレンジでは、科学研究で用いられる温度センサーのための堅牢な例外処理システムを開発します。目標は、std::runtime_error を継承したカスタムクラス TemperatureException を作成し、無効な温度測定値に対してこのカスタム例外をスローする温度検証機能を実装することです。

温度例外ハンドラーの作成

科学研究において、正確な温度モニタリングは極めて重要です。あなたの任務は、無効な読み取り値を検出し、報告することができる温度センサー用の堅牢な例外処理システムを構築することです。

タスク

テンプレートコード内の以下の TODO を完了させてください。

  1. TemperatureException のコンストラクタを実装する:

    • 基底クラス(base class)をエラーメッセージで初期化する
    • 無効な温度の値をセットする
  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 のコンストラクタを使用してエラーメッセージを設定します。
  • 無効な温度を例外クラスのプライベートメンバとして保存します。
  • 無効な温度の値を取得するためのゲッター(getter)メソッドを作成します。
✨ 解答を確認して練習

まとめ

まとめると、このチャレンジでは std::runtime_error を継承したカスタムクラス TemperatureException を作成し、無効な温度測定値に対してその例外をスローする検証関数を実装しました。これにより、科学研究における温度センサーのための堅牢なエラーハンドリング(例外処理)システムを構築する方法を学びました。