程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> throw的一些用法

throw的一些用法

編輯:ASP.NET基礎

無論是.net還是java,在開發程序時都難免會用到throw關鍵字,對於初學者一般會認為它與try...catch捆綁在一起,這當然是錯誤的,事實上,throw的一個最重要的作用就是:

讓程序告訴用戶一些事情,這些事情一般是開發人員之前定義好的,如對於一個輸入文本框,你需要輸入給定數字,但如果輸入的不是給定的數據范圍,則可以通過throw告訴用戶!

讓程序告訴開發人員一些事情,這些事情一般是底層開發人員之前定義好的,如果一些業務規范,如果開發人員輸入的不合法,程序就會拋出一個異常,以告訴表層開發人員!

下面是一個程序中的throw用法:

復制代碼 代碼如下:
if (vp.ContainsKey("flag"))
            {
                int flagValue;
                int.TryParse(vp["flag"].ToString(), out flagValue);
                switch (flagValue)
                {
                    case 0:
                        linq = linq.Where(i => i.EndTime > DateTime.Now);
                        break;
                    case 1:
                        linq = linq.Where(i => i.EndTime <= DateTime.Now);
                        break;
                    case 2:
                       //...break;
                    default:
                        throw new ArgumentException("參數不正確");
                }
            }

上面的代碼,由前台用戶傳入一個參數,這邊於程序處理,這裡不考慮擴展,所以使用了switch塊(對於業務多變的情況下,我們可以使用策略模式,工廠模式去代替switch這個代碼壞味道),當你輸入的參數不到給定的case條件時,就會向上拋出異常,以告訴用戶!當然默認情況下會以黃屏的樣子出現,我們運營的系統,當然會做一些處理。

.net mvc為我們提供的實例項目,是這樣使用throw關鍵字的,看代碼:

復制代碼 代碼如下:
public bool ValidateUser(string userName, string password)
        {
            if (String.IsNullOrEmpty(userName)) throw new ArgumentException("值不能為 null 或為空。", "userName");
            if (String.IsNullOrEmpty(password)) throw new ArgumentException("值不能為 null 或為空。", "password");

            return _provider.ValidateUser(userName, password);
        }

好了,對於throw的解說就到這裡,今天做項目正好用到這個,所以就總結了一下,希望給你會帶來一點點幫助,呵呵。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved