C# 如何捕获所有异常?????????????????

haroun 2009-05-22 10:08:57
如何捕获所有异常


是这样的:
我的winform程序有许多模块,很多地方用了
try
{...}
catch
{...}
来保护,因为代码很多,有的地方写了,有的地方没写,而这样写也很麻烦,
有什么办法统一在一个地方写,能捕捉到没有捕获过(因为有些代码已经编写try...catch...保护)的任何异常?

static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
catch (Exception ex)
{

}

}
这样捕获时,有异常抛出程序会直接退出~~,郁闷哦~


...全文
1150 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
CGabriel 2009-05-23
  • 打赏
  • 举报
回复
不能编辑, 提交回复太快....

Application.ThreadException 能够捕捉主线程上的异常。 你再在所有的后台线程的执行方法上搞个巨型的 try,把后台线程上的异常也捕捉下来,大概, 没有异常了吧...只是程序有不明确行为的几率大幅度提升...
CGabriel 2009-05-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 haroun 的回复:]
但目前的情况是不知错误出现在哪里啊?而且如果能捕获取异常,可以用堆栈进行跟踪,也大概可以定位到那里出错

Application.ThreadException 这方法,可以捕获到大多数的错误,有些却不能捕获到~

我的程序总是崩溃~
[/Quote]

通常 .Net 上面的异常信息都会带有调用堆栈的, 大部分情况之下可以回溯的。
如果你的异常隐藏之深, 连调用堆栈都没有能够显示出来。 基本上推倒重写会快一些...

当然, 如果出现了一些类似于 win32 程序异常的信息。 恭喜你了, 免费获得通往彻夜调试大会的门票一张。
kkun_3yue3 2009-05-22
  • 打赏
  • 举报
回复
一点疑点或线索都么有吗?
自己的代码自己最熟悉才是...找找最有可能出错的代码出来,
一块分析分析看看有没有什么问题...
haroun 2009-05-22
  • 打赏
  • 举报
回复
但目前的情况是不知错误出现在哪里啊?而且如果能捕获取异常,可以用堆栈进行跟踪,也大概可以定位到那里出错

Application.ThreadException 这方法,可以捕获到大多数的错误,有些却不能捕获到~

我的程序总是崩溃~
kkun_3yue3 2009-05-22
  • 打赏
  • 举报
回复
不推荐这么做
万一有错误时不方便快速定位出错点
LemIST 2009-05-22
  • 打赏
  • 举报
回复
同意1楼的观点
PandaIT 2009-05-22
  • 打赏
  • 举报
回复
throw new Exception(ex.ToString());
CGabriel 2009-05-22
  • 打赏
  • 举报
回复
可以响应 Application.ThreadException 事件,不过不建议你这么做。 异常在哪里发生就应该在哪里处理掉
black_night 2009-05-22
  • 打赏
  • 举报
回复
建议楼主还是不要这样处理异常,不然程序出错了也很难发现错误并进行处理。

111,097

社区成员

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

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

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