C# 异常捕获记录

mfc198666_002 2011-02-11 01:42:45
初学C#有些地方不懂,请教一下:

我想记录所有发生过的异常,无论这个异常是否被捕获过。
未捕获的异常记录方法如下:

//捕获当前未绑定异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
//捕获线程异常
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

可是如果这个异常已经被捕获了,应该如何记录呢?
有人说:继承Exception自定一个异常类,如果发生异常就在异常类里记录?(这样对吗?如果这样对的话,那么异常类需要被throw 才能抓取到,这样做记录起来不是更麻烦么?)

有没有什么办法可以很方便的记录所有发生过的异常?

...全文
134 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfc198666_002 2011-02-11
  • 打赏
  • 举报
回复
好了基本明白了,谢谢大家指导
  • 打赏
  • 举报
回复
既然被人捕获而不继续抛出异常了,这就意味着它全权负责,不给程序的继续正常运行留下任何隐患。
  • 打赏
  • 举报
回复
[Quote=引用楼主 mfc198666_002 的回复:]
可是如果这个异常已经被捕获了,应该如何记录呢?
[/Quote]

既然不继续抛出异常,你再捕获他有什么意义呢?

遇到那些画蛇添足地胡乱隐藏异常触发点(具体语句)的程序员写的程序,不用考虑怎么“记录”做这些语句,先考虑这样的程序员有没有必要放在团队中吧!
silentcross 2011-02-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mfc198666_002 的回复:]

上面打错了:

如果已捕获的异常怎么办? 是不是已捕获的异常在一般的项目中都不会去记录日志呢?还是说每个已捕获的异常里都要写一行代码记录一下?
[/Quote]

是的,每个捕获的异常都要写一行代码记录,一般可能的异常都要捕获防止扩散
mfc198666_002 2011-02-11
  • 打赏
  • 举报
回复
上面打错了:

如果已捕获的异常怎么办? 是不是已捕获的异常在一般的项目中都不会去记录日志呢?还是说每个已捕获的异常里都要写一行代码记录一下?
mfc198666_002 2011-02-11
  • 打赏
  • 举报
回复
谢谢2位的回答 ,但是你俩的方法好像是,只有在这个异常没有被捕获的情况下,才能记录啊?

如果没捕获的异常怎么办? 是不是一般没有捕获的异常在一般的项目中都不会去记录日志呢?还是说每个没捕获的异常都要一行代码记录一下?
dazhabai 2011-02-11
  • 打赏
  • 举报
回复

private static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
{
if (log.IsErrorEnabled)
{
//ToDo: 字符串
//log.Error(Resource.ResManager.Instance().GetMsg("BF_CH_INFO_APPDOMAIN_EX"));// "应用程序域异常"
log.Error(e.ExceptionObject.ToString());
}
}
wuyq11 2011-02-11
  • 打赏
  • 举报
回复
var handler = new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
AppDomain.CurrentDomain.UnhandledException += handler;
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Debug.Print("{0}发生系统异常:{1}", DateTime.Now, e.ExceptionObject.ToString());
}
log4net记录

110,534

社区成员

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

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

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