佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > throw的一些用法

throw的一些用法

熱門標(biāo)簽:阿里云 服務(wù)器配置 銀行業(yè)務(wù) 科大訊飛語(yǔ)音識(shí)別系統(tǒng) Linux服務(wù)器 電子圍欄 團(tuán)購(gòu)網(wǎng)站 Mysql連接數(shù)設(shè)置

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

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

讓程序告訴開發(fā)人員一些事情,這些事情一般是底層開發(fā)人員之前定義好的,如果一些業(yè)務(wù)規(guī)范,如果開發(fā)人員輸入的不合法,程序就會(huì)拋出一個(gè)異常,以告訴表層開發(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)幫助,呵呵。

標(biāo)簽:萍鄉(xiāng) 蚌埠 大理 衢州 江蘇 衡水 棗莊 廣元

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《throw的一些用法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    商水县| 南宁市| 五台县| 荔波县| 申扎县| 云龙县| 疏附县| 峨眉山市| 广州市| 阿拉善右旗| 宁河县| 佛教| 噶尔县| 安泽县| 青铜峡市| 大悟县| 灵寿县| 平利县| 昌都县| 耿马| 湘潭市| 龙海市| 大关县| 波密县| 新兴县| 商城县| 桓台县| 拜泉县| 玉龙| 阳西县| 赣州市| 涿鹿县| 榆中县| 金川县| 通榆县| 防城港市| 大安市| 四川省| 泽普县| 运城市| 宣汉县|