在windows应用中 能不能统一处理 未处理的异常?

realljx 2005-06-09 10:04:53
能不能捕捉到所有 未捕捉的异常? 能不能获取发生这个异常的窗口 ?

然后做一个统一的处理?

呵呵
...全文
122 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yk1028 2005-06-09
  • 打赏
  • 举报
回复
http://www.cnblogs.com/instinct/articles/85427.html
realljx 2005-06-09
  • 打赏
  • 举报
回复
可能偶没有说明白吧 我不是说那个窗口

我是说 假如

Form1 form = new Form1();
form.Show()

然后在 form 里面出错了

我如何获得这个 form 的引用啊
Richardhu 2005-06-09
  • 打赏
  • 举报
回复
Form.ActiveForm 当前激活窗口。
在static void Main()函数中捕捉异常。
zr1982930 2005-06-09
  • 打赏
  • 举报
回复
帮顶!
3tzjq 2005-06-09
  • 打赏
  • 举报
回复
这个运行错误窗口应该是.Net Framework 内部已封装的一个组件,无法继承它。

---然后将那个窗口强行关闭掉?

其实你要的这个目的就是不报错吧?可以在DebugError中不做任何处理就行了啊!
epimetheus 2005-06-09
  • 打赏
  • 举报
回复
建议楼主看看微软的 Application Block SDK
realljx 2005-06-09
  • 打赏
  • 举报
回复
niss() 偶的标题是 在Windows应用中 呵呵 谢谢!
niss 2005-06-09
  • 打赏
  • 举报
回复
做一个BasePage类继承page基类
重载OnError方法
在这个事件里写自己的错误处理方法即可,
然后所有webform继承该类
realljx 2005-06-09
  • 打赏
  • 举报
回复
3tzjq(永不言弃)谢谢您的指教

不知道能不能获取发生这个异常的窗口 ?
然后将那个窗口强行关闭掉?
3tzjq 2005-06-09
  • 打赏
  • 举报
回复
可以!主要是捕获Application.ThreadException异常:

public static void Main()
{
Application.ThreadException += new EventHandler(DebugError);
Application.Run(new frmMain());//主窗口
}

然后写一统一处理事件:
private void DebugError(object sender, Threading.ThreadExceptionEventArgs e)
{
MessageBox.Show("程序发生了未处理的严重错误!\n\n" + e.Exception.Message + "\n方法名:" + e.Exception.TargetSite.Name + "\n调用对象:" + e.Exception.Source + e.Exception.StackTrace, "运行错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);

//你可以做个窗体来处理这些错误消息,比如加个“发送错误报告”、“退出”、“继续”等按钮。
}
alexxzr 2005-06-09
  • 打赏
  • 举报
回复
高人!学习!
benjiamen 2005-06-09
  • 打赏
  • 举报
回复
不知,帮顶

110,532

社区成员

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

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

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