throw Exception from property setting : Properties « Class « C# / CSharp Tutorial






using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


    public class MyClass
    {
        public readonly string Name;
        private int intVal;

        public int Val
        {
            get
            {
                return intVal;
            }
            set
            {
                if (value >= 0 && value <= 10)
                    intVal = value;
                else
                    throw (new ArgumentOutOfRangeException("Val", value,"Val must be assigned a value between 0 and 10."));
            }
        }
        public override string ToString()
        {
            return "Name: " + Name + "\nVal: " + Val;
        }

        private MyClass() : this("Default Name")
        {
        }
        public MyClass(string newName)
        {
            Name = newName;
            intVal = 0;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            MyClass myObj = new MyClass("My Object");
            Console.WriteLine("myObj created.");
            for (int i = -1; i <= 0; i++)
            {
                try
                {
                    myObj.Val = i;
                }
                catch (Exception e)
                {
                    Console.WriteLine("Exception {0} thrown.", e.GetType().FullName);
                    Console.WriteLine("Message:\n\"{0}\"", e.Message);
                }
            }
        }
    }








7.38.Properties
7.38.1.Properties and its Restrictions
7.38.2.A simple property example
7.38.3.Readonly property
7.38.4.Property Getter and Setter
7.38.5.Define accessors for Properties with get and set
7.38.6.Use properties to set and get private members.
7.38.7.Add Length property to MyArray
7.38.8.Property And its associated Field
7.38.9.Add statement to the getter and setter of a property
7.38.10.Combine readonly and read only property
7.38.11.Put logic to property setter
7.38.12.Do calculation with Property
7.38.13.Invoke Indexed Property Demo
7.38.14.throw Exception from property setting
7.38.15.Write Only Properties and