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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

使用IsLine FrameWork开发ASP.NET程序之六—使用ExceptionProcessProvider异常处理框架(下)...

發布時間:2025/4/5 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用IsLine FrameWork开发ASP.NET程序之六—使用ExceptionProcessProvider异常处理框架(下)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一期我們向大家介紹了如何配置與記錄異常,下面我將向大家介紹如何配置異常的展示。異常的展示是指系統一旦發生異常,將會以何種樣式返回給終端用戶,IsLine FrameWork為開發人員提供了10種不同的展現方式,本期文章會給大家詳細介紹。

??? 對異常的展示管理分為基本異常管理與超級日常管理。基本異常是指編碼造成的異常,超級異常是指在記錄異常的過程中發生的異常,本文將對如何處理這兩種異常展開講解。

??? 一.基本異常展示的方式

??? 如果有以下錯誤代碼:

??? try
??? {
??????? string i = "i";
??????? Response.Write(Convert.ToInt32(i));
??? }
??? catch (Exception ex)
??? {
??????? ILException ile = new ILException();
??????? ile.WriteLog(ex);
??? }

??? 根據以下不同配置信息,頁面有不同的顯示,這個顯示方式根據web.config給出的鍵值決定:

??? <add key="IsLine.ExceptionProcess.Configuration.ProcessStyle" value="ThrowOriginalWithLog"/>

??? 其中,value可以為以下枚舉值:

??? 1.ThrowOriginalWithLog

??? 這種方式的含義是拋出原始錯誤,終止應用程序,并將這種錯誤記錄到異常日志中。

圖6.1 原始錯誤

? 2.ThrowOriginalWithoutLog

這種方式的含義只是拋出原始錯誤,終止應用程序,并不記錄這種錯誤,圖示同上。

? 3.ThrowFriendlyWithLog

這種方式的含義是拋出友好的錯誤信息,終止應用程序,并記錄異常。友好異常信息由自己定義。

圖6.2 拋出友好信息

? 4.ThrowFriendlyWithoutLog

??? 這種方式的含義是拋出友好的錯誤信息,終止應用程序,并不記錄異常,圖示同上。

需要注意的是,使用3、4兩種配置,需要在web.config中添加額外的節點信息,這些信息決定了友好信息的顯示字段與排版:

??? 在<configSections></configSections>中添加以下信息

<sectionGroup name="IsLine.ExceptionProcess.Configuration">
<section name="ILExceptionModel" type="IsLine.Data.Configuration.SuitConfig" />
</sectionGroup>

??? 在</configSections><appSettings>之間加入以下信息

<IsLine.ExceptionProcess.Configuration>
<ILExceptionModel>
<Message>-&gt;Message:@Message</Message>
其他配置地段省略。。。

</ILExceptionModel>
</IsLine.ExceptionProcess.Configuration>

? 5.ThrowSimpleWithLog

??? 這種方式的含義是拋出簡單的預定義的錯誤信息,終止應用程序,并記錄異常。拋出的異常內容只有很簡單的信息“The current page has an exception!”,這個預定義信息由以下節點定義,value部分就是頁面顯示的信息:

??? <add key="IsLine.ExceptionProcess.ExceptionProcessProvider.FriendlySimpleText" value="The current page has an exception!"/>

? 6.ThrowSimpleWithoutLog

??? 這種方式的含義是拋出簡單的預定義的錯誤信息,終止應用程序,并不記錄異常,圖示同上。

? 7.ShowSimpleWithLog

??? 這種方式的含義是顯示簡單的預定義的錯誤信息,不終止應用程序,并記錄異常。

??? 這種方式顯示錯誤信息與5、6相同,但是5、6配置形式,如果程序中遇到錯誤則會觸發“throw”,從而導致程序終止運行;而7、8怎會顯示錯誤,程序繼續運行。

? 8.ShowSimpleWithoutLog

這種方式的含義是顯示簡單的預定義的錯誤信息,不終止應用程序,并不記錄異常。

? 9.HideWithLog

這種方式的含義是不顯示任何錯誤信息,不終止應用程序,并將異常信息記錄。

10.? HideWithoutLog

這種方式的含義是不顯示任何錯誤信息,不終止應用程序,并不記錄異常信息。

注意,異常的記錄是日志模塊可以理解為繼承的關系,日志模塊的緩存等特性配置,在異常中仍有效。

至于,異常信息被寫到什么地方,正如我們前面所說到的,它是由日志的Render決定的:

??? <add key="IsLine.ExceptionProcess.Configuration.RenderName" value="OracleUsingSPRender"/>

?? “OracleUsingSPRender”便是日志的Render名稱, Render模型描述了異常記錄位置、格式等信息,詳細請見上一期文章中的內容。

??? 從上文中大家可以看出,通過web.config中的配置信息,用戶只需要修改一個枚舉值,即可改變異常的展現方式,同時決定系統在發生異常后是否繼續運行下去,這對于一個系統很重要,有些時候我們需要系統即使發生異常也要繼續運行,而有些時候我們必須在異常發生時回滾并停止系統運行。使用異常支持模塊,我們將很容易做到這一點。

二.關于超級異常日志

??? 如果在異常記錄的過程中,發生錯誤,這時異常信息不會記錄成功,異常信息自動被忽略,如果管理員希望在日志模塊出現錯誤時,ILFW仍然記錄這些信息,管理員可以打開配置文件中“超級日志”的開關。

??? 當此開關打開后,如果日志模塊出現錯誤(例如數據庫連接中斷),ILFW會自動將當前信息記錄至一個文本文件中,直到導致日志模塊錯誤的因素消失。

在web.config中添加以下節點開啟超級日志功能:

??? <add key="IsLine.ExceptionProcess.ExceptionProcessProvider.IsOpenDebugInfo" value="True" />

以下節點表示超級日志記錄位置:

??? <add key="IsLine.ExceptionProcess.ExceptionProcessProvider.DebugInfo" value="C:\IsLineLog\FinallyLog.txt" />

??? 注意,超級日志只能寫入文本文件,并且使用超級日志需要確保相關賬戶對日志文件具有完全控制權限。

??? 同時需要注意的時,如果您將日志模塊配置為緩存打開,那么記錄異常時也將繼承這一特性,依據緩存大小進行緩存,超過緩存閥值時,在寫入異常信息。

??? 在下一講,我們將會講針對web開發,講解一下緩存、Session、Cookie的配置與使用。


本文轉自Aicken(李鳴)博客園博客,原文鏈接:http://www.cnblogs.com/isline/archive/2010/05/05/ilfw6.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的使用IsLine FrameWork开发ASP.NET程序之六—使用ExceptionProcessProvider异常处理框架(下)...的全部內容,希望文章能夠幫你解決所遇到的問題。

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