無論是.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ù)范圍,則可以通過throw告訴用戶!
讓程序告訴開發(fā)人員一些事情,這些事情一般是底層開發(fā)人員之前定義好的,如果一些業(yè)務(wù)規(guī)范,如果開發(fā)人員輸入的不合法,程序就會(huì)拋出一個(gè)異常,以告訴表層開發(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);
}