C# 屏蔽由于崩溃弹出的windows异常弹框

时间:2021-05-20

windows应用程序(包括控制台)在运行时如果出现了未处理的异常会出项windows的异常提示框

这个提示框在平时并没有什么影响。但是当我们使用启动的是一个服务器程序时,我们的要求应该是尽可能快的重启应用。

但是由于这个提示框导致我们的第三方守护程序并不知道应用已经崩溃退出,导致我们无法及时处理。

所以,我们应该在程序启动时再做一个处理,即添加未处理异常的事件

C#: AppDomain.CurrentDomain.UnhandledException

解释: 此事件提供通知未捕获的异常。 它允许应用程序来记录有关异常的信息,系统默认处理程序将异常报告给用户和终止应用程序之前。 如果提供了有关状态的应用程序的足够信息,可以采取其他措施-例如保存更高版本的恢复的程序数据。 建议小心,因为不处理异常时,可能会损坏程序数据。

在该事件中我们可以从容的捕获异常、记录然后退出重启。

示例代码:

class Program { static int m_count = 0; static void Main(string[] args) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; while(true) { Func1(); Thread.Sleep(10); } } private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine("有未经处理的异常,程序即将退出!"); Thread.Sleep(5000); Environment.Exit(-1); } static void Func1() { m_count++; if(m_count > 100) { throw new Exception(); } } }

结果:

总结

以上所述是小编给大家介绍的C# 屏蔽由于崩溃弹出的windows异常弹框,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章