C# WinForm程序出错的时候,如何自动重启

viki117 2009-08-28 12:03:53
因为程序是一个融合平台,调用到很多第三方程序和服务,很多时候并不是自己程序错误,而是第三方程序和服务的意外错误,导致程序崩溃,理论上当然也是程序没有做好异常的处理,但是有些异常相当不好处理;
所以想当程序出现一些致命错误的时候,或者第三方程序和服务导致程序死掉的时候,怎么自动重启程序,不要用进程Process来处理,很多时间实际上进程依然在,但是程序因为没有确认退出,进程依然在那里的
...全文
957 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
code_li 2012-06-01
  • 打赏
  • 举报
回复
电话 短信程序 也是用的第三方 dll 经常出错。。。。纠结中、、、
reciment 2011-06-04
  • 打赏
  • 举报
回复
学习下 正在找这个方面的问题
viki117 2009-09-01
  • 打赏
  • 举报
回复
还有一点就是。。很多地方没有做异常处理。。而且有的时间是内存错误和程序内嵌的falsh错误,但是我也需要一律搞定这些错误,并重起程序
viki117 2009-09-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
写自定义异常类,在catch里
Application.Restart();
[/Quote]
具体点啥,程序里那么多类,就算继承也够弄的了。。
lethwei 2009-08-28
  • 打赏
  • 举报
回复
我觉得其实在内部捕捉异常比较合理
所有的 #界面操作/新线程操作/Control.Invoke# 都用 try catch 保护, 然后在一些高危界面下重载 WndProc(), 改为 try { base.WndProc } catch ...
这样基本能够避免意料不到的错误了
yuanhuiqiao 2009-08-28
  • 打赏
  • 举报
回复
Main函数里重启应该可以
wuyq11 2009-08-28
  • 打赏
  • 举报
回复
写自定义异常类,在catch里
Application.Restart();
pcqpzq 2009-08-28
  • 打赏
  • 举报
回复
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.ThreadException+=new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
Application.Restart();
}
pcqpzq 2009-08-28
  • 打赏
  • 举报
回复
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
catch
{
Application.Restart();
}
}
}

110,537

社区成员

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

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

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