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