c# throw及try_catch關聯測試

wisdomone1發表於2012-07-07
 //客戶端
    class Program
    {
        //學習屬性存取器,有效性檢查是在SET中
        //屬性與方法是平行關係,即屬性不能在辦法中定義,但可以在方法內部呼叫已經定義好的屬性
        private int month;//月份
        public int Month
        {
            get
            {
                return month;
            }
            set
            {
                if (month < 1 || month > 12)
                {
                    throw new ArgumentOutOfRangeException(value.ToString());//如何賦值不合理,丟擲異常
                }
                month = value;
            }

        }

        static void Main(string[] args)
        {
           //呼叫定義好的屬性Month
            Program p = new Program();
            try
            {
                p.Month = 13;//因為在Month屬性定義中有throw異常的程式碼,所以要用try來捕獲,這樣就會捕獲指定的程式碼,一旦程式碼出錯便於分析TRACE
            }
                //catch後跟的異常型別必須是month屬性定義中throw丟擲的異常的父類或至少和它的類一樣
            catch (Exception e) //發現用了throw丟擲異常必須要捕獲異常用catch不然編譯不透過哈 Exception 
            {
                Console.WriteLine(e.Message);
                throw new ArgumentNullException();
                throw e;//throw加指定異常會丟擲具體的異常
                throw;//僅一個throw會怎麼樣呢 ,僅一個throw會把異常重新丟擲
            }
            try
            {
                p.Month = 11;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            Console.ReadKey();
        }

        //定義列舉型別
        public enum testenum:int //列舉預設型別是int
        {
            first=1,
            second=2,
            third=3
        }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-734864/,如需轉載,請註明出處,否則將追究法律責任。

相關文章