如何写一个异常类啊

hejiwang 2003-07-03 04:25:27
今天老板叫我写一个"自定义"异常类,我不知道从那里下手.
内容是:如何抓取所有"系统错误信息"等如:取错误号,错误代码?
希望大家来交流.
QQ:13725905
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanfey 2003-08-09
  • 打赏
  • 举报
回复
gz
dotnetter 2003-07-14
  • 打赏
  • 举报
回复
去查MSDN啊,这种基本知识写得都很清楚
clipper_clipper 2003-07-13
  • 打赏
  • 举报
回复
up
gujianxin 2003-07-03
  • 打赏
  • 举报
回复
using System;
using System.Diagnostics;
using System.IO;


namespace Tiny_Dust.Lib.Base
{
/// <summary>
///错误保存,LogFile将错误信息和出错时间保存在有访问权限的文件中(默认:D:\WebException)
///可以通过ChangeErrSaveDir 改变
///或者用LogWindowEvent保存错误信息到Windows事件中(要求权限)
/// </summary>
public class ExceptionSave: System.Exception
{
static System.Text.Encoding gb = System.Text.Encoding.GetEncoding("GB2312");
static string ErrDir = ConstBase.ErrDir ;

public enum ERR_CODE
{
OPEN_FILE_FAILED = -9,
CONNECT_FAILED ,
OTHER ,
OK = 0

}
public ERR_CODE m_err;

/// <summary>
/// 改变文件保存路径()
/// </summary>
/// <param name="sNewPath"></param>
static void ChangeErrSaveDir(string sNewPath)
{
///目录必须存在
if(System.IO.File.Exists(sNewPath))
ErrDir = sNewPath;
}


/// <summary>
/// 保存错误信息到Windows事件中(要求权限)
/// </summary>
/// <param name="message">要保存的错误信息</param>
public static void LogWindowEvent(string message)
{
try
{
if (!EventLog.SourceExists("Tiny_Dust"))
{
EventLog.CreateEventSource("Tiny_Dust", "Application");
}
EventLog.WriteEntry("Tiny_Dust", message, EventLogEntryType.Error);
}
catch
{

}
}

/// <summary>
/// 保存错误信息
/// </summary>
/// <param name="message"></param>
public static void LogFile(string message)
{
try
{
//style: time \t errMessage \n
string ErrFile = System.IO.Path.Combine(ErrDir,DateTime.Now.ToString("MM_dd__")+"err.txt");
string sErr = DateTime.Now.ToString() +"\t"+message+"\r\n";
byte[] buff = gb.GetBytes(sErr);
FileStream fs = File.Open(ErrFile,FileMode.Append,FileAccess.Write,FileShare.None );
fs.Write (buff,0,buff.Length );
fs.Close ();


}
catch(Exception ex)
{
Console.Write(ex.Message);
}



}


//这是为了你的要求而加的,大体是这个意思,你可以再修改加上更多信息
/// <summary>
/// 保存错误信息
/// </summary>
public void LogFile()
{
string message = this.Message;
int err = (int)this.m_err;



try
{
//style: time \t errMessage \n
string ErrFile = System.IO.Path.Combine(ErrDir,DateTime.Now.ToString("MM_dd__")+"err.txt");
string sErr = DateTime.Now.ToString() +"ErrNumber:\t"+err.ToString()+"\t"+message+"\r\n";
byte[] buff = gb.GetBytes(sErr);
FileStream fs = File.Open(ErrFile,FileMode.Append,FileAccess.Write,FileShare.None );
fs.Write (buff,0,buff.Length );
fs.Close ();


}
catch(Exception ex)
{
Console.Write(ex.Message);
}



}

public override string ToString()
{
return "Tiny_Dust.Lib.Base.AppException";
}

}
}

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧