關(guān)于A(yíng)sp.net ajax下的異常處理_ASP教程
推薦:ASP程序員必備的知識(shí)數(shù)據(jù)庫(kù)連接: % set conn=server.createobject(adodb.connection) conn.open driver={microsoft access driver (*.mdb)};dbq=server.mappath(數(shù)據(jù)庫(kù)名) % 打開(kāi)數(shù)據(jù)庫(kù): exec=select * from 數(shù)據(jù)庫(kù)表 set rs=server.createobject(adodb.recordset) rs.open ex
最近做一個(gè)項(xiàng)目時(shí),大量應(yīng)用了Asp.net ajax,由于在UpdatePanel這種異步更新模式下,后臺(tái)處理時(shí)所發(fā)生的異常并不會(huì)導(dǎo)致客戶(hù)端的界面發(fā)生變化,而是直接以alert的方式彈出異常信息,所以我就偷了個(gè)懶,在后臺(tái)檢測(cè)到不符合要求的輸入之類(lèi)的情況下,就直接把錯(cuò)誤提示信息throw一下就好了。但現(xiàn)在發(fā)現(xiàn)問(wèn)題了,就是這樣一來(lái),如何處理其它的未處理異常?
為了不至于全部重新來(lái)修改一遍,我考慮了這幾種處理方式:
1.在web.config的customErrors配置中設(shè)置當(dāng)出現(xiàn)未處理的異常時(shí)轉(zhuǎn)到指定頁(yè);
2.在Global.asax的Application_Error事件處理程序中,將異常信息輸出到指定的頁(yè)面顯示給客戶(hù)端;
3.由于我所有的頁(yè)面都是繼承自一個(gè)MyPage類(lèi)(它又繼承自System.Web.UI.Page),所以也可以考慮在MyPage的Page_Error事件處理程序中,來(lái)將異常信息輸出到指定的頁(yè)面顯示給客戶(hù)端。
但是,第一和第三種方法,會(huì)在出現(xiàn)異常時(shí)直接轉(zhuǎn)到指定頁(yè),從而達(dá)不到直接alert錯(cuò)誤提示的效果;而第二種方法,倒是不會(huì)管這種異步的程序異常,不會(huì)把頁(yè)面重定向,但在A(yíng)pplication_Error里面用Server.GetLastError()方法捕獲的異常很多時(shí)候又不是直接的包含了友好錯(cuò)誤信息的那個(gè)異常,而是它所導(dǎo)致的異常,比如經(jīng)常就會(huì)導(dǎo)致System.Web.HttpUnhandledException異常。所以這種方式也不理想。
與大家一起討論。
分享:ASP Access數(shù)據(jù)庫(kù)的18條安全法則ASP Access數(shù)據(jù)庫(kù)的18條安全法則: 1.首先,我們需要過(guò)濾所有客戶(hù)端提交的內(nèi)容,其中包括?id=N一類(lèi),另外還有提交的html代碼中的操作數(shù)據(jù)庫(kù)的select及asp文件操作語(yǔ)法,大家可以把提交的字符轉(zhuǎn)義,然后再存入數(shù)據(jù)庫(kù)。 2.然后需要對(duì)訪(fǎng)問(wèn)Access數(shù)據(jù)庫(kù)的頁(yè)面進(jìn)行授
- asp FSO 讀寫(xiě)文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶(hù)真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過(guò)濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁(yè)模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無(wú)組件分頁(yè)實(shí)現(xiàn)思路及代碼
- 相關(guān)鏈接:
- 教程說(shuō)明:
ASP教程-關(guān)于A(yíng)sp.net ajax下的異常處理
。