關于Asp.net ajax下的異常處理_ASP教程
推薦:ASP程序員必備的知識數據庫連接: % set conn=server.createobject(adodb.connection) conn.open driver={microsoft access driver (*.mdb)};dbq=server.mappath(數據庫名) % 打開數據庫: exec=select * from 數據庫表 set rs=server.createobject(adodb.recordset) rs.open ex
最近做一個項目時,大量應用了Asp.net ajax,由于在UpdatePanel這種異步更新模式下,后臺處理時所發生的異常并不會導致客戶端的界面發生變化,而是直接以alert的方式彈出異常信息,所以我就偷了個懶,在后臺檢測到不符合要求的輸入之類的情況下,就直接把錯誤提示信息throw一下就好了。但現在發現問題了,就是這樣一來,如何處理其它的未處理異常?
為了不至于全部重新來修改一遍,我考慮了這幾種處理方式:
1.在web.config的customErrors配置中設置當出現未處理的異常時轉到指定頁;
2.在Global.asax的Application_Error事件處理程序中,將異常信息輸出到指定的頁面顯示給客戶端;
3.由于我所有的頁面都是繼承自一個MyPage類(它又繼承自System.Web.UI.Page),所以也可以考慮在MyPage的Page_Error事件處理程序中,來將異常信息輸出到指定的頁面顯示給客戶端。
但是,第一和第三種方法,會在出現異常時直接轉到指定頁,從而達不到直接alert錯誤提示的效果;而第二種方法,倒是不會管這種異步的程序異常,不會把頁面重定向,但在Application_Error里面用Server.GetLastError()方法捕獲的異常很多時候又不是直接的包含了友好錯誤信息的那個異常,而是它所導致的異常,比如經常就會導致System.Web.HttpUnhandledException異常。所以這種方式也不理想。
與大家一起討論。
分享:ASP Access數據庫的18條安全法則ASP Access數據庫的18條安全法則: 1.首先,我們需要過濾所有客戶端提交的內容,其中包括?id=N一類,另外還有提交的html代碼中的操作數據庫的select及asp文件操作語法,大家可以把提交的字符轉義,然后再存入數據庫。 2.然后需要對訪問Access數據庫的頁面進行授
- 相關鏈接:
- 教程說明:
ASP教程-關于Asp.net ajax下的異常處理。