プログラミング演習Ⅲ(2023)

【課題2-03】例外のスロー

プロジェクトタイプC#コンソールアプリ※
プロジェクト名Prac_2_03
ソリューション名PET2
ターゲットフレームワーク.NET 6.0 (長期的なサポート)
最上位レベルのステートメントを使用しない使用しない(チェックオン)

※ 「コンソールアプリ(.NET Framework)」ではないので注意せよ!

_ではあらかじめdouble型の変数quuxが宣言されており,何らかの実数が代入されている.

この変数quuxの値をチェックして,その値が-10.0以下ならば,InvalidOperationException例外を投じるプログラムを作成せよ. その際のエラーメッセージは「変数 quux の値が -10.0 以下です.」とすること.

注意
  • この設問ではコンソール(黒画面)への表示処理を作る必要はない.

プログラムの概形は_のようにすること(必ず以下をコピーしProgram.cs全体を上書きすること).

テンプレートコード
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
namespace Prac_2_03
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // テスト対象の変数(変更してはならない)
                double quux = GetSecretValue();

                /**********************************************************************/
                /*                                                                    */
                /* 空欄: 変数 quux の値をチェックしてその値が -10.0 以下ならば,      */
                /*       InvalidOperationException 例外を投じる.                     */
                /*       その際のエラーメッセージは                                   */
                /*       「変数 quux の値が -10.0 以下です.」とする.                */
                /*                                                                    */
                /**********************************************************************/

                // 表示処理(変更してはならない)
                Console.WriteLine($"quux : {quux}");
            }//try
            catch (InvalidOperationException ex) // 例外処理(変更してはならない)
            {
                Console.WriteLine(ex.Message);
            }//catch

        }// end of Main()

        #region ここは変更してはならない
        static Random sRandom = new Random(3263);
        static double GetSecretValue() => Math.Round(-50 + 100 * sRandom.NextDouble(), 2);
        #endregion

    }// end of class Program
}// end of namespace

正しく実装できた場合,実行結果は_のようになる.

変数 quux の値が -10.0 以下です.
実行結果

ヒント

  • InvalidOperationException例外とは,C#にあらかじめ用意されている「不正な操作が行われた」ということを示す例外クラスの一つである.
    • この例外クラスもほかの例外クラスと同じく,コンストラクタに文字列型の引数を与えることで例外メッセージを指定することができる.
    • つまり「new InvalidOperationException(例外メッセージ)」のようにすれば,このクラスのインスタンスを生成できるのでこれをthrow文に指定すればよい.
Last updated on 2023-11-28
Published on 2023-11-28

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.