用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c#代码库

自定义异常处理类

2012-10-12 作者: 神马举报

[c#]代码库

//自定义异常处理类
using System;
using System.Diagnostics;
namespace MyAppException
{
  /// <summary>
  /// 从系统异常类ApplicationException继承的应用程序异常处理类。
  /// 自动将异常内容记录到Windows NT/2000的应用程序日志
  /// </summary>
  public class AppException:System.ApplicationException
		  
{
	  public AppException()
	  
	{
		  if ( ApplicationConfiguration.EventLogEnabled ) LogEvent ( "出现一个未知错误。" );
		  
	}
	  public AppException ( string message )
	  
	{
		  LogEvent ( message );
		  
	}
	  public AppException ( string message,Exception innerException )
	  
	{
		  LogEvent ( message );
		  if ( innerException != null )
			  {
			  LogEvent ( innerException.Message );
			  }
		  
	}
	  //日志记录类
	  using System;
	  using System.Configuration;
	  using System.Diagnostics;
	  using System.IO;
	  using System.Text;
	  using System.Threading;
	  namespace MyEventLog
				  
	{
	  /// <summary>
	  /// 事件日志记录类,提供事件日志记录支持
	  /// <remarks>
	  /// 定义了4个日志记录方法 (error, warning, info, trace)
	  /// </remarks>
	  /// </summary>
	  public class ApplicationLog
			  
	{
		  /// <summary>
		  /// 将错误信息记录到Win2000/NT事件日志中
		  /// <param name="message">需要记录的文本信息</param>
		  /// </summary>
		  public static void WriteError ( String message )
		  
		{
			  WriteLog ( TraceLevel.Error, message );
			  
		}
		  /// <summary>
		  /// 将警告信息记录到Win2000/NT事件日志中
		  /// <param name="message">需要记录的文本信息</param>
		  /// </summary>
		  public static void WriteWarning ( String message )
		  
		{
			  WriteLog ( TraceLevel.Warning, message );
			  
			  
		}
		  /// <summary>
		  /// 将提示信息记录到Win2000/NT事件日志中
		  /// <param name="message">需要记录的文本信息</param>
		  /// </summary>
		  public static void WriteInfo ( String message )
		  
		{
			  WriteLog ( TraceLevel.Info, message );
			  
		}
		  /// <summary>
		  /// 将跟踪信息记录到Win2000/NT事件日志中
		  /// <param name="message">需要记录的文本信息</param>
		  /// </summary>
		  public static void WriteTrace ( String message )
		  
		{
			  WriteLog ( TraceLevel.Verbose, message );
			  
		}
		  /// <summary>
		  /// 格式化记录到事件日志的文本信息格式
		  /// <param name="ex">需要格式化的异常对象</param>
		  /// <param name="catchInfo">异常信息标题字符串.</param>
		  /// <retvalue>
		  /// <para>格式后的异常信息字符串,包括异常内容和跟踪堆栈.</para>
		  /// </retvalue>
		  /// </summary>
		  public static String FormatException ( Exception ex, String catchInfo )
		  
		{
			  StringBuilder strBuilder = new StringBuilder();
			  if ( catchInfo != String.Empty )
				  {
				  strBuilder.Append ( catchInfo ).Append ( "\r\n" );
				  }
			  strBuilder.Append ( ex.Message ).Append ( "\r\n" ).Append ( ex.StackTrace );
			  return strBuilder.ToString();
			  
		}
		  /// <summary>
		  /// 实际事件日志写入方法
		  /// <param name="level">要记录信息的级别(error,warning,info,trace).</param>
		  /// <param name="messageText">要记录的文本.</param>
		  /// </summary>
		  private static void WriteLog ( TraceLevel level, String messageText )
		  
		{
			  try
				  
			{
				  EventLogEntryType LogEntryType;
				  switch ( level )
					  
				{
				  case TraceLevel.Error:
					  LogEntryType = EventLogEntryType.Error;
					  break;
				  case TraceLevel.Warning:
					  LogEntryType = EventLogEntryType.Warning;
					  break;
				  case TraceLevel.Info:
					  LogEntryType = EventLogEntryType.Information;
					  break;
				  case TraceLevel.Verbose:
					  LogEntryType = EventLogEntryType.SuccessAudit;
					  break;
				  default:
					  LogEntryType = EventLogEntryType.SuccessAudit;
					  break;
					  
				}
				  EventLog eventLog = new EventLog ( "Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
				  //写入事件日志
				  eventLog.WriteEntry ( messageText, LogEntryType );
				  
			}
			  catch {} //忽略任何异常
			  
		}
	  
} //class ApplicationLog
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...