LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【C#】Winform 全局异常捕获处理

admin
2023年9月4日 12:11 本文热度 440

我们在开发winform程序的时候经常需要处理异常,如果没处理好异常程序就会崩溃,影响用户体验。
所以防止程序在没处理到异常时能由一个全局的异常捕获处理,在winform的program文件里面我们可以添加全局异常捕获事件,然后处理异常。

在program的main方法里面设置异常处理方式,然后注册异常处理的两个事件:

1.设置异常处理方式

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);//处理未捕获的异常


2.ThreadException 处理UI线程异常

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

Application_ThreadException方法:

static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)        {            string str = "";

           string strDateInfo = "\r\n\r\n出现应用程序未处理的异常:" + DateTime.Now.ToString() + "\r\n";

           Exception error = e.Exception as Exception;

           if (error != null)            {

               string logInfo = string.Format(strDateInfo + "异常类型:{0}\r\n异常消息:{1}\r\n异常信息:{2}\r\n", error.GetType().Name, error.Message, error.StackTrace);                str = string.Format(strDateInfo + "异常类型:{0}\r\n异常消息:{1}\r\n",                error.GetType().Name, error.Message);

           }

           else

           {                str = string.Format("应用程序线程错误:{0}", e);

           }

           MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

       }


3.UnhandledException 处理非UI线程异常

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

CurrentDomain_UnhandledException 方法:

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)

       {

           string str = "";

           Exception error = e.ExceptionObject as Exception;

           string strDateInfo = "出现应用程序未处理的异常:" + DateTime.Now.ToString() + "\r\n";

           if (error != null)

           {

               string logInfo = string.Format(strDateInfo + "Application UnhandledException:{0};\n\r堆栈信息:{1}", error.Message, error.StackTrace);                str = string.Format(strDateInfo + "Application UnhandledException:{0};\n\r", error.Message);

           }

           else

           {                str = string.Format("Application UnhandledError:{0}", e);            }            MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);        }

该文章在 2023/9/4 12:16:48 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved