日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Asp.net中网站级异常捕获

發布時間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Asp.net中网站级异常捕获 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在公司某管理系統中,用了一些獨立的模塊,在這些類的實現中,錯誤是直接拋出異常的,我想這是我們通常的做法。然而,問題也來了,由于自己在Asp.net頁面中沒有去捕獲這些異常,并且多處頁面中都使用了這些類,于是在多個頁面都會出現不友好的錯誤提示信息。

怎么辦?又不想一處一處修改代碼,既費時又費力,這樣編程不就變成了體力勞動,從而失去了樂趣。 這時讓我想起了自定義錯誤頁,于是Google,終于找到了答案。

1、配置web.config:

<customErrors?mode="RemoteOnly"?defaultRedirect="ErrorPage.aspx"?redirectMode="ResponseRewrite"/> ?關鍵是redirectMode屬性,該屬性默認為ResponseRedirect,由于被Redirect了,異常也就被忽略了,使你無法捕獲到異常。這里羅嗦一句:因為出錯前后被認為是兩次請求,我們知道http協議是一種無狀態的協議,第二次請求忽略了第一次的異常也就不奇怪了。于是有人用了Session或Application來保存異常,這是不可取的。正確的做法是使用“ResponseRewrite"。

2、輸出異常信息:

?我們知道網站出錯時,會自動導向我們的ErrorPage.apx頁面,在ErrorPage.aspx中如何訪問這個異常呢?答案是:Server.GetLastError(),當然有可能是Server.GetLastError().InnerException。這要具體分析了。

if(Server.GetLastError()!=null){
???Response.Write(Server.GetLastError().Message);
}

順便說一下:

Asp.net MVC中就簡單多了,框架自帶了一個Error.aspx,異常保存在Model.Exception中,并且Web.config中也為我們配置好了。

在下從去年以來開發的網頁就基本是MVC的了,結構清晰,擴展方便,清涼的HTML代碼輸出。有空看看MVC的源代碼還是很有幫助的。

轉載于:https://www.cnblogs.com/zhangchenliang/archive/2011/04/19/2021257.html

總結

以上是生活随笔為你收集整理的Asp.net中网站级异常捕获的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。