ASP開發中可能有時候會用大段的if... else 的判斷,不過如果是動態Response.write的內容,你想更方便閱讀程式碼,可以用Response.End()來終端ASP的執行,也就類似Break的用法
ASP開發中可能有時候會用大段的if... else 的判斷,不過如果是動態Response.write的內容,你想更方便閱讀程式碼,可以用Response.End()來終端ASP的執行,也就類似Break的用法,舉個例子:
複製代碼代碼如下:if (userid=)or(password=) then
Response.Write(<script lanuage=javascript>alert('UserName or Password is Empty!');location.href='../default.asp';</script>)
Response.End() '這裡進行了中斷end if 下面是不為空進行讀取資料庫的操作,省略了n行程式碼
這樣當傳入的使用者名稱或密碼為空時,自動write提示訊息訊息,然後Response.End()中斷程序,從而達到if 。 。 。 else的作用。
另外使用Response.End的時候,就是我們日常除錯程式的時候,例如
相輸出拼接的SQL語句,而不想執行下面的程式碼,那就可以這麼做
複製代碼代碼如下:sql=select * from userinfo
response.Write(sql)
response.End()
rs.open sql ,conn,1,1 '這句話是不會執行的
如果怕加入Response.End()的地方太多而正式發佈時候不好註解掉的化,可以用個函數將其封裝起來,如下面程式碼:
複製代碼代碼如下:sub debug()
Response.End()
end sub
上面的程式碼修改如下:
複製代碼代碼如下:sql=select * from userinfo
response.Write(sql)
debug()
rs.open sql ,conn,1,1 '這句話是不會執行的
這樣當進行正式發佈時,將函數debug中的語句註解掉,就可以起到調試的作用,不過這個也有個問題就是,如果你使用太多的debug(),可能在調試的時候程式會不能按照需要進行中斷,可能有時候你不希望這些地方中斷執行,那麼我們來進一步重構debug()函數,如下:
sub debug(isBreak) 'isBreak是boolean值的參數,如果設定為true的時候則進行中斷,否則,不進行中斷處理if isBreak then Response.End() endend sub
使用時候程式碼如下:
複製代碼代碼如下:sql=select * from userinfo
response.Write(sql)
debug(false)
rs.open sql ,conn,1,1 '這句話是會執行的rs.close()
sql=select * from product
response.write(sql)
debug(true)
rs.open sql,conn,1,1 '這句話不會執行
好了,這樣基本上可以滿足我們控制中斷的需求了,不過只是簡單的進行了分析,其實還很不完善,調試需求可能還有很多,需要滿足,還需要進一步重構。其實程式開發就是一個重構重構再重構的過程,要不怎麼會出來那麼多的設計模式,都是前人從實際開發重構過程總結出來的經驗,值得大家借鏡。