2018年6月11日月曜日

開発環境

初めてのC# 第2版 (Jesse Liberty (著)、Brian MacDonald (著)日向 俊二 (翻訳)、オライリージャパン)の16章(例外)、16.12(練習問題)、練習16-2.を取り組んでみる。

コード

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {

        List<Cat> cats = new List<Cat>();
        for (int i = -5; i < 5; i++)
        {
            cats.Add(new Cat(i));
        }
        CatManager(cats);
    }
    public static void CatManager(List<Cat> cats)
    {
        foreach (Cat cat in cats)
        {
            try
            {
                if (cat.Age <= 0)
                {
                    throw new CustomCaError("猫の年齢が0以下: " + cat.Age);
                }
                Console.WriteLine(cat.Age);
            }
            catch (CustomCaError e)
            {
                Console.WriteLine(e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                Console.WriteLine("Catオブジェクトの割り当ての解除");
            }
        }
    }
}

public class Cat
{
    private int age;

    public Cat(int age)
    {
        this.age = age;
    }

    public int Age
    {
        get { return age; }
        set { age = value; }
    }
}

public class CustomCaError : Exception
{
    public CustomCaError(string message) : base(message)
    {
    }
}

入出力結果(コマンドプロンプト)

猫の年齢が0以下: -5
Catオブジェクトの割り当ての解除
猫の年齢が0以下: -4
Catオブジェクトの割り当ての解除
猫の年齢が0以下: -3
Catオブジェクトの割り当ての解除
猫の年齢が0以下: -2
Catオブジェクトの割り当ての解除
猫の年齢が0以下: -1
Catオブジェクトの割り当ての解除
猫の年齢が0以下: 0
Catオブジェクトの割り当ての解除
1
Catオブジェクトの割り当ての解除
2
Catオブジェクトの割り当ての解除
3
Catオブジェクトの割り当ての解除
4
Catオブジェクトの割り当ての解除
続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿