throw的一些用法
無論是.net還是java,在開發(fā)程序時(shí)都難免會(huì)用到throw關(guān)鍵字,對于初學(xué)者一般會(huì)認(rèn)為它與try...catch捆綁在一起,這當(dāng)然是錯(cuò)誤的,事實(shí)上,throw的一個(gè)最重要的作用就是:
讓程序告訴用戶一些事情,這些事情一般是開發(fā)人員之前定義好的,如對于一個(gè)輸入文本框,你需要輸入給定數(shù)字,但如果輸入的不是給定的數(shù)據(jù)范圍,則可以通過throw告訴用戶!
讓程序告訴開發(fā)人員一些事情,這些事情一般是底層開發(fā)人員之前定義好的,如果一些業(yè)務(wù)規(guī)范,如果開發(fā)人員輸入的不合法,程序就會(huì)拋出一個(gè)異常,以告訴表層開發(fā)人員!
下面是一個(gè)程序中的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("參數(shù)不正確");
}
}
上面的代碼,由前臺用戶傳入一個(gè)參數(shù),這邊于程序處理,這里不考慮擴(kuò)展,所以使用了switch塊(對于業(yè)務(wù)多變的情況下,我們可以使用策略模式,工廠模式去代替switch這個(gè)代碼壞味道),當(dāng)你輸入的參數(shù)不到給定的case條件時(shí),就會(huì)向上拋出異常,以告訴用戶!當(dāng)然默認(rèn)情況下會(huì)以黃屏的樣子出現(xiàn),我們運(yùn)營的系統(tǒng),當(dāng)然會(huì)做一些處理。
.net mvc為我們提供的實(shí)例項(xiàng)目,是這樣使用throw關(guān)鍵字的,看代碼:
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);
}
好了,對于throw的解說就到這里,今天做項(xiàng)目正好用到這個(gè),所以就總結(jié)了一下,希望給你會(huì)帶來一點(diǎn)點(diǎn)幫助,呵呵。
相關(guān)文章
使用FlashPaper在線轉(zhuǎn)換.doc為.swf
Flashpaper的使用相信大多數(shù)人都知道,這里的Demo是用于在線轉(zhuǎn)換 .doc文件轉(zhuǎn)換為 .swf的flash文件。2011-02-02
asp.net使用jquery實(shí)現(xiàn)搜索框默認(rèn)提示功能
這篇文章主要介紹了asp.net使用jquery實(shí)現(xiàn)搜索框默認(rèn)提示功能,大家參考使用吧2014-01-01
Asp.net GridView隔行變色和光棒效果2種方法實(shí)現(xiàn)
兩種方法實(shí)現(xiàn)GridView隔行變色和光棒效果:前臺和后臺配合使用及JQuery方式,感興趣的朋友可以參考下哈,希望可以幫助到你2013-04-04
關(guān)于ASP.NET頁面打印技術(shù)的常用方法總結(jié)
B/S結(jié)構(gòu)導(dǎo)致了Web應(yīng)用程序中打印的特殊性;程序運(yùn)行在瀏覽器中,打印機(jī)在本地,而文件確可能在服務(wù)器上,導(dǎo)致了打印控制不是很靈活,接下來介紹幾種常見的打印技術(shù),感興趣的朋友可以了解下2013-01-01
asp.net操作Word實(shí)現(xiàn)批量替換
這篇文章主要介紹了asp.net操作Word實(shí)現(xiàn)批量替換的方法,需要的朋友可以參考下2015-10-10
讓VS2008對JQuery語法的智能感知更完美一點(diǎn)
上周Rich Strahl的POST中提到一個(gè)新發(fā)布的VS2008 hotfix修復(fù)了VS2008對Javascript智能感知的一些BUG,fixed之后可以讓VS2008對JQuery提供智能感知,讓我等JQuery fans欣喜了一陣子??勺屑?xì)一看,還需要另外給JQuery添加上XML comments才行 :( 喪氣了...2008-03-03

