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

 更新时间:2017年08月15日 16:20:02   作者:孤风魅影  
这篇文章主要介绍了C# 屏蔽由于崩溃弹出的windows异常弹框,需要的朋友可以参考下

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异常弹框,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • C# 获取 PC 序列号的方法示例

    C# 获取 PC 序列号的方法示例

    这篇文章主要介绍了C# 获取 PC 序列号的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Winform使用FTP实现自动更新

    Winform使用FTP实现自动更新

    这篇文章主要为大家详细介绍了Winform使用FTP实现自动更新,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • C#解析json字符串总是多出双引号的原因分析及解决办法

    C#解析json字符串总是多出双引号的原因分析及解决办法

    json好久没用了,今天在用到json的时候,发现对字符串做解析的时候总是多出双引号,下面给大家介绍C#解析json字符串总是多出双引号的原因分析及解决办法,需要的朋友参考下吧
    2016-03-03
  • C# Unity使用正则表达式去除部分富文本的代码示例

    C# Unity使用正则表达式去除部分富文本的代码示例

    正则表达式在我们日常开发中的用处不用多说了吧,下面这篇文章主要给大家介绍了关于C# Unity使用正则表达式去除部分富文本的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • C#检查指定对象是否存在于ArrayList集合中的方法

    C#检查指定对象是否存在于ArrayList集合中的方法

    这篇文章主要介绍了C#检查指定对象是否存在于ArrayList集合中的方法,涉及C#中Contains方法的使用技巧,需要的朋友可以参考下
    2015-04-04
  • c#调用c++方法介绍,window api

    c#调用c++方法介绍,window api

    c#在调用c++方法或者window api时不能象调用c#本身写的dll类库那样直接通过引用dll就可以调用相应的方法, 而是要把要引用的dll放到bin中,现通过[DllImport("um_web_client.dll")]引用
    2013-10-10
  • 详解WCF服务中的svc文件

    详解WCF服务中的svc文件

    本文详细讲解了WCF服务中的svc文件,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C#实现将Word转化分享为电子期刊

    C#实现将Word转化分享为电子期刊

    曾经由一个项目,要求实现制作电子期刊定期发送给企业进行阅读,由编辑人员使用 Microsoft Word先生成PDF文件,然后将生成的PDF文件转化为JPEG文件,最后将JPEG文件生成电子书模式,本文给大家介绍了C#实现将Word转化分享为电子期刊,需要的朋友可以参考下
    2023-12-12
  • winform拦截关闭按钮触发的事件示例

    winform拦截关闭按钮触发的事件示例

    这篇文章主要介绍了c# winform拦截关闭按钮触发的事件示例,大家参考使用吧
    2014-01-01
  • C#实现页面GZip或Deflate压缩的方法

    C#实现页面GZip或Deflate压缩的方法

    这篇文章主要介绍了C#实现页面GZip或Deflate压缩的方法,涉及C#通过GZipStream与DeflateStream实现页面压缩的相关技巧,需要的朋友可以参考下
    2015-06-06

最新评论