麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > ASP > 正文

response.end的優缺點介紹

2024-05-04 11:09:57
字體:
來源:轉載
供稿:網友

不論在asp中還是asp.net中response.end都是終止輸出內容多用于調試程序的時候用處也很有用,類似設置斷點,特別是你的程序有重大問題,如有死循環的時候一般的response.write 查看中間結果是無法看到的,這時在response.write后加入response.end,這個查看中間結果很有用

首先講講它的好處。

調試程序的時候用處也很有用,類似設置斷點,特別是你的程序有重大問題,如有死循環的時候一般的response.write 查看中間結果是無法看到的,這時在response.write后加入response.end,這個查看中間結果很有用。

不過,如果使用 Response.End、Response.Redirect 或 Server.Transfer 方法,將出現 ThreadAbortException 異常。您可以使用 try-catch 語句捕獲此異常。

Response.End 方法終止頁的執行,并將此執行切換到應用程序的事件管線中的 Application_EndRequest 事件。不執行 Response.End 后面的代碼行。

此問題出現在 Response.Redirect 和 Server.Transfer 方法中,因為這兩種方法均在內部調用 Response.End。

解決方案 :

要解決此問題,請使用下列方法之一:

• 對于 Response.End,調用 HttpContext.Current.ApplicationInstance.CompleteRequest 方法而不是 Response.End 以跳過 Application_EndRequest 事件的代碼執行。

• 對于 Response.Redirect,請使用重載 Response.Redirect(String url, bool endResponse),該重載對 endResponse 參數傳遞 false 以取消對 Response.End 的內部調用。例如:

Response.Redirect ("Default.aspx", false);

Response.End()用法

ASP開發中可能有時候會用大段的if... else 的判斷,不過如果是動態Response.write的內容,你想更方便閱讀代碼,可以用Response.End()來終端ASP的執行,也就類似于Break的用法,舉個例子:

if (userid="")or(password="") then Response.Write("") 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 '這句不會執行

好了,這樣基本上可以滿足我們控制中斷的需求了,不過只是簡單的進行了分析,其實還很不完善,調試需求可能還有很多,需要滿足,還需要進一步重構。其實程序開發就是一個重構重構再重構的過程,要不怎么會出來那么多的設計模式,都是前人從實際開發重構過程總結出來的經驗,值得大家借鑒。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品国产一区三区| 国产精品视频一区二区三区四 | 国产精品午夜在线 | 视频在线91 | 最新毛片在线观看 | 欧美一级免费在线观看 | 欧美18videos性处按摩 | 成人男女视频 | 欧美黄色免费视频 | 久草最新 | 久久美女色视频 | 国产流白浆高潮在线观看 | 一本色道久久综合狠狠躁篇适合什么人看 | 双性精h调教灌尿打屁股的文案 | 国产精品色在线网站 | 久久国产精品二区 | 日韩黄色av网站 | 国产免费高清在线 | 亚洲骚综合 | 国产精品剧情一区二区三区 | 免费国产视频在线观看 | 男女羞羞在线观看 | 国产人妖一区二区 | 久久精品99久久久久久2456 | 国产女同疯狂激烈互摸 | 黄色片网站在线免费观看 | av性色全交蜜桃成熟时 | 国产亚洲精品成人 | 在线a毛片免费视频观看 | 在线天堂中文字幕 | 成人午夜视频免费在线观看 | 久草在线观看资源 | 中国女警察一级毛片视频 | 国产亚洲精品久久久久久久久久 | 欧美精品免费一区二区三区 | 激情久久免费视频 | 中文字幕在线网站 | 毛片免费观看日本中文 | 男男羞羞视频网站国产 | 好吊色欧美一区二区三区四区 | 成人福利视频在线观看 |