關於Asp.net ajax下的異常處理

來源:互聯網
上載者:User
  最近做一個項目時,大量應用了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.net ajax這種異常處理的便捷性的時候,能兼顧處理好其它的未處理異常(比如Page_Load裡!IsPostBack的代碼中出現的異常)。暫借首頁寶地一用,希望能聽到讓人豁然開朗的高見。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.