最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

throw的一些用法

 更新時(shí)間:2013年02月26日 14:38:51   作者:  
無(wú)論是.net還是java,在開(kāi)發(fā)程序時(shí)都難免會(huì)用到throw關(guān)鍵字

無(wú)論是.net還是java,在開(kāi)發(fā)程序時(shí)都難免會(huì)用到throw關(guān)鍵字,對(duì)于初學(xué)者一般會(huì)認(rèn)為它與try...catch捆綁在一起,這當(dāng)然是錯(cuò)誤的,事實(shí)上,throw的一個(gè)最重要的作用就是:

讓程序告訴用戶一些事情,這些事情一般是開(kāi)發(fā)人員之前定義好的,如對(duì)于一個(gè)輸入文本框,你需要輸入給定數(shù)字,但如果輸入的不是給定的數(shù)據(jù)范圍,則可以通過(guò)throw告訴用戶!

讓程序告訴開(kāi)發(fā)人員一些事情,這些事情一般是底層開(kāi)發(fā)人員之前定義好的,如果一些業(yè)務(wù)規(guī)范,如果開(kāi)發(fā)人員輸入的不合法,程序就會(huì)拋出一個(gè)異常,以告訴表層開(kāi)發(fā)人員!

下面是一個(gè)程序中的throw用法:

復(fù)制代碼 代碼如下:

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("參數(shù)不正確");
                }
            }

上面的代碼,由前臺(tái)用戶傳入一個(gè)參數(shù),這邊于程序處理,這里不考慮擴(kuò)展,所以使用了switch塊(對(duì)于業(yè)務(wù)多變的情況下,我們可以使用策略模式,工廠模式去代替switch這個(gè)代碼壞味道),當(dāng)你輸入的參數(shù)不到給定的case條件時(shí),就會(huì)向上拋出異常,以告訴用戶!當(dāng)然默認(rèn)情況下會(huì)以黃屏的樣子出現(xiàn),我們運(yùn)營(yíng)的系統(tǒng),當(dāng)然會(huì)做一些處理。

.net mvc為我們提供的實(shí)例項(xiàng)目,是這樣使用throw關(guān)鍵字的,看代碼:

復(fù)制代碼 代碼如下:

public bool ValidateUser(string userName, string password)
        {
            if (String.IsNullOrEmpty(userName)) throw new ArgumentException("值不能為 null 或?yàn)榭铡?, "userName");
            if (String.IsNullOrEmpty(password)) throw new ArgumentException("值不能為 null 或?yàn)榭铡?, "password");

            return _provider.ValidateUser(userName, password);
        }


好了,對(duì)于throw的解說(shuō)就到這里,今天做項(xiàng)目正好用到這個(gè),所以就總結(jié)了一下,希望給你會(huì)帶來(lái)一點(diǎn)點(diǎn)幫助,呵呵。

相關(guān)文章

最新評(píng)論

齐齐哈尔市| 泸定县| 上蔡县| 乡城县| 阳谷县| 花莲市| 攀枝花市| 大姚县| 调兵山市| 阿坝县| 佛冈县| 敦化市| 平潭县| 夏河县| 乾安县| 常熟市| 霸州市| 西乌| 贵德县| 丽水市| 泰来县| 甘孜县| 博兴县| 花莲县| 扶绥县| 靖远县| 深水埗区| 高平市| 梧州市| 仲巴县| 松溪县| 裕民县| 大渡口区| 家居| 越西县| 商河县| 陇川县| 北辰区| 浦北县| 秀山| 德阳市|