国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

response.end的優(yōu)缺點(diǎn)介紹

發(fā)布時(shí)間:2021-08-17 12:10 來(lái)源: 閱讀:0 作者: 欄目: ASP 歡迎投稿:712375056

首先講講它的好處。

調試程序的時(shí)候用處也很有用,類(lèi)似設置斷點(diǎn),特別是你的程序有重大問(wèn)題,如有死循環(huán)的時(shí)候一般的response.write   查看中間結果是無(wú)法看到的,這時(shí)在response.write后加入response.end,這個(gè)查看中間結果很有用。

不過(guò),如果使用 Response.End、Response.Redirect 或 Server.Transfer 方法,將出現 ThreadAbortException 異常。您可以使用 try-catch 語(yǔ)句捕獲此異常。
Response.End 方法終止頁(yè)的執行,并將此執行切換到應用程序的事件管線(xiàn)中的 Application_EndRequest 事件。不執行 Response.End 后面的代碼行。
此問(wèn)題出現在 Response.Redirect 和 Server.Transfer 方法中,因為這兩種方法均在內部調用 Response.End。

解決方案 :

要解決此問(wèn)題,請使用下列方法之一:
• 對于 Response.End,調用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是 Response.End 以跳過(guò) Application_EndRequest 事件的代碼執行。
• 對于 Response.Redirect,請使用重載 Response.Redirect(String url, bool endResponse),該重載對 endResponse 參數傳遞 false 以取消對 Response.End 的內部調用。例如:
Response.Redirect ("Default.aspx", false);

Response.End()用法 

ASP開(kāi)發(fā)中可能有時(shí)候會(huì )用大段的if... else 的判斷,不過(guò)如果是動(dòng)態(tài)Response.write的內容,你想更方便閱讀代碼,可以用Response.End()來(lái)終端ASP的執行,也就類(lèi)似于Break的用法,舉個(gè)例子:

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)行讀取數據的操作,省略了n行代碼

這樣當傳入的用戶(hù)名或密碼為空時(shí),自動(dòng)write提示信息信息,然后Response.End()中斷程序,從而達到if 。。。else的作用。

另外使用Response.End的時(shí)候,就是我們日常調試程序的時(shí)候,比如

相輸出拼接的SQL語(yǔ)句,而不想執行下面的代碼,那么可以這么做

sql="select * from userinfo "response.Write(sql)response.End()rs.open sql ,conn,1,1 '這句是不會(huì )執行的

如果怕加入Response.End()的地方過(guò)多而正式發(fā)布時(shí)候不好注釋掉的化,可以用個(gè)函數將其封裝起來(lái),如下面代碼:

sub debug() Response.End()end sub

上面的代碼修改如下:

sql="select * from userinfo "response.Write(sql)debug()rs.open sql ,conn,1,1 '這句是不會(huì )執行的

這樣當進(jìn)行正式發(fā)布時(shí),將函數debug中的語(yǔ)句注釋掉,就可以起到調試的作用,不過(guò)這個(gè)也有個(gè)問(wèn)題就是,如果你使用太多的debug(),可能在調試的時(shí)候程序會(huì )不能按照需要進(jìn)行中斷,可能有時(shí)候你不希望這些地方中斷執行,那么我們來(lái)進(jìn)一步重構debug()函數,如下:

sub debug(isBreak) 'isBreak是boolean值的參數,如果設置為true的時(shí)候則進(jìn)行中斷,否則,不進(jìn)行中斷處理 if isBreak then Response.End() endend sub

使用時(shí)候代碼如下:

sql="select * from userinfo "response.Write(sql)debug(false)rs.open sql ,conn,1,1 '這句是會(huì )執行的rs.close()sql="select * from product "response.write(sql)debug(true)rs.open sql,conn,1,1 '這句不會(huì )執行

好了,這樣基本上可以滿(mǎn)足我們控制中斷的需求了,不過(guò)只是簡(jiǎn)單的進(jìn)行了分析,其實(shí)還很不完善,調試需求可能還有很多,需要滿(mǎn)足,還需要進(jìn)一步重構。其實(shí)程序開(kāi)發(fā)就是一個(gè)重構重構再重構的過(guò)程,要不怎么會(huì )出來(lái)那么多的設計模式,都是前人從實(shí)際開(kāi)發(fā)重構過(guò)程總結出來(lái)的經(jīng)驗,值得大家借鑒。

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

大屁股人妻女教师撅着屁股| 久久夜色精品国产| 亚洲精品中文字幕无码蜜桃| 午夜精品一区二区三区在线观看| 一本一道久久综合久久| 欧美成人精品三级在线观看|