一个简单的异常处理方法,是把异常信息按日期储存到xml日志文件中,方便分析。

主要实现的功能是:
1,根据日期创建xml日志文件,如2006-04-26log.xml
2,把每一个异常信息,包括一些环境信息储存到xml日志中
3,对外显示一个友好的错误信息

在一下小软件上还是有一些帮助的,尤其对于bug返回很有帮助,对方只要把xml文件反馈,我们就可以根据xml上的异常信息来修复一些bug

让我们先看看日志的效果,以下是实际产生的xml日志内容:
简单的异常处理--生成xml异常日志<root>
简单的异常处理--生成xml异常日志
<ExceptionInformation>
简单的异常处理--生成xml异常日志
<AdditionalInformationProperty>
简单的异常处理--生成xml异常日志  
<ExceptionManager.Title>WindowsApplication12</ExceptionManager.Title> 
简单的异常处理--生成xml异常日志  
<ExceptionManager.MachineName>GRAPECITY-TONY</ExceptionManager.MachineName> 
简单的异常处理--生成xml异常日志  
<ExceptionManager.TimeStamp>2006-4-26 21:35:22</ExceptionManager.TimeStamp> 
简单的异常处理--生成xml异常日志  
<ExceptionManager.FullName>WindowsApplication12, Version=1.0.2307.37434, Culture=neutral, PublicKeyToken=null</ExceptionManager.FullName> 
简单的异常处理--生成xml异常日志  
<ExceptionManager.AppDomainName>WindowsApplication12.exe</ExceptionManager.AppDomainName> 
简单的异常处理--生成xml异常日志  
<ExceptionManager.ThreadIdentity /> 
简单的异常处理--生成xml异常日志  
<ExceptionManager.WindowsIdentity>GRAPECITY-TONY\Tony</ExceptionManager.WindowsIdentity> 
简单的异常处理--生成xml异常日志  
</AdditionalInformationProperty>
简单的异常处理--生成xml异常日志
<Exception>
简单的异常处理--生成xml异常日志  
<ExceptionType>System.NullReferenceException</ExceptionType> 
简单的异常处理--生成xml异常日志  
<Message>Object reference not set to an instance of an object.</Message> 
简单的异常处理--生成xml异常日志  
<TargetSite>Void Form1_Load(System.Object, System.EventArgs)</TargetSite> 
简单的异常处理--生成xml异常日志  
<StackTrace>at WindowsApplication12.Form1.Form1_Load(Object sender, EventArgs e) in C:\Documents and Settings\Tony\My Documents\Visual Studio Projects\WindowsApplication12\Form1.vb:line 48</StackTrace> 
简单的异常处理--生成xml异常日志  
<Source>WindowsApplication12</Source> 
简单的异常处理--生成xml异常日志  
</Exception>
简单的异常处理--生成xml异常日志  
</ExceptionInformation>
简单的异常处理--生成xml异常日志  
</root>

stackTrace中根据到了出错位置。
更近一步,我们可以创建一个xsl文件来把上述的xml文件格式化的更友好一些,这个下次有空在弄吧,先把异常处理类贴上来吧:
简单的异常处理--生成xml异常日志Imports System.Xml
简单的异常处理--生成xml异常日志
Imports System.Collections.Specialized
简单的异常处理--生成xml异常日志
Imports System.IO
简单的异常处理--生成xml异常日志
Imports System.Security
简单的异常处理--生成xml异常日志
Imports System.Threading
简单的异常处理--生成xml异常日志
Imports System.Security.Principal
简单的异常处理--生成xml异常日志
简单的异常处理--生成xml异常日志
简单的异常处理--生成xml异常日志
''' -----------------------------------------------------------------------------
简单的异常处理--生成xml异常日志'
'' Project     : WindowsApplication12
简单的异常处理--生成xml异常日志'
'' Class     : ExceptionManager
简单的异常处理--生成xml异常日志'
'' 
简单的异常处理--生成xml异常日志'
'' -----------------------------------------------------------------------------
简单的异常处理--生成xml异常日志'
'' <summary>
简单的异常处理--生成xml异常日志'
'' 异常管理类
简单的异常处理--生成xml异常日志'
'' </summary>
简单的异常处理--生成xml异常日志'
'' <remarks>
简单的异常处理--生成xml异常日志'
'' 根据日期,在指定xml文件中写入异常记录
简单的异常处理--生成xml异常日志'
'' </remarks>
简单的异常处理--生成xml异常日志'
'' <history>
简单的异常处理--生成xml异常日志'
''     [Tony]    2006-4-26    Created
简单的异常处理--生成xml异常日志'
'' </history>
简单的异常处理--生成xml异常日志'
'' -----------------------------------------------------------------------------

里面注释已经写的挺清楚了,就不多加解释了。
现在看看我们怎么调用这个shared方法,我们可以在try.....catch.....代码中调用它,如下:
End Sub

运行该form1窗体,将提示如下错误提示窗体:
简单的异常处理--生成xml异常日志

同时,程序的目录下,出现了“Exception Log”子目录,该目录下,自动生成了2006-04-26-log.xml这个日志文件。

xml日志文件的内容已经在上面列出过了。如果当日还有其他异常发生,2006-04-26-log.xml中将增加一个节点。

这个异常处理方法可能还有不少不足,不过我想简单应用应该可以了吧?我也会在今后逐渐改进他。也请朋友们多多提意见。谢谢。

相关文章: