.NET資料 2008-10-28 11:41:58 閱讀1683 評論0 字號:大中小 訂閱
ASP開發(fā)中可能有時候會用大段的if... else 的判斷,不過如果是動態(tài)Response.write的內(nèi)容,你想更方便閱讀代碼,可以用Response.End()來終端ASP的執(zhí)行,也就類似于Break的用法,舉個例子:
if (userid="")or(password="") then Response.Write("<script lanuage=javascript>alert('UserName or Password is Empty!');location.href='../default.asp';</script>") Response.End() ‘這里進(jìn)行了中斷 end if 下面是不為空進(jìn)行讀取數(shù)據(jù)庫的操作,省略了n行代碼
這樣當(dāng)傳入的用戶名或密碼為空時,自動write提示信息信息,然后Response.End()中斷程序,從而達(dá)到if 。。。else的作用。
另外使用Response.End的時候,就是我們?nèi)粘U{(diào)試程序的時候,比如
相輸出拼接的SQL語句,而不想執(zhí)行下面的代碼,那么可以這么做
sql="select * from userinfo "response.Write(sql)response.End()rs.open sql ,conn,1,1 '這句是不會執(zhí)行的
如果怕加入Response.End()的地方過多而正式發(fā)布時候不好注釋掉的化,可以用個函數(shù)將其封裝起來,如下面代碼:
sub debug() Response.End()end sub
上面的代碼修改如下:
sql="select * from userinfo "response.Write(sql)debug()rs.open sql ,conn,1,1 '這句是不會執(zhí)行的
這樣當(dāng)進(jìn)行正式發(fā)布時,將函數(shù)debug中的語句注釋掉,就可以起到調(diào)試的作用,不過這個也有個問題就是,如果你使用太多的debug(),可能在調(diào)試的時候程序會不能按照需要進(jìn)行中斷,可能有時候你不希望這些地方中斷執(zhí)行,那么我們來進(jìn)一步重構(gòu)debug()函數(shù),如下:
sub debug(isBreak) 'isBreak是boolean值的參數(shù),如果設(shè)置為true的時候則進(jìn)行中斷,否則,不進(jìn)行中斷處理 if isBreak then Response.End() endend sub
使用時候代碼如下:
sql="select * from userinfo "response.Write(sql)debug(false)rs.open sql ,conn,1,1 '這句是會執(zhí)行的rs.close()sql="select * from product "response.write(sql)debug(true)rs.open sql,conn,1,1 '這句不會執(zhí)行
好了,這樣基本上可以滿足我們控制中斷的需求了,不過只是簡單的進(jìn)行了分析,其實還很不完善,調(diào)試需求可能還有很多,需要滿足,還需要進(jìn)一步重構(gòu)。其實程序開發(fā)就是一個重構(gòu)重構(gòu)再重構(gòu)的過程,要不怎么會出來那么多的設(shè)計模式,都是前人從實際開發(fā)重構(gòu)過程總結(jié)出來的經(jīng)驗,值得大家借鑒。
聯(lián)系客服