首页 > 编程语言 >在 WinForms 应用程序中处理未经处理的异常

在 WinForms 应用程序中处理未经处理的异常

时间:2024-05-11 14:10:20浏览次数:20  
标签:OK AppSetting 处理 void 应用程序 Application WinForms static 线程

 internal static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            // 添加事件处理程序以捕获主UI线程中发生的所有异常
            Application.ThreadException += Application_ThreadException;
            // 为应用程序域中除UI线程之外的其他所有线程 
            // 添加事件处理程序
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            ReadAppSettings();
            //2.登录
            LoginForm Login = new LoginForm();
            if (Login.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    Application.Run(new MainForm());
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, ConstHelper.ErrorInformation, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                Application.Exit();
            }
        }

        private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {//处理其他所有线程异常事件
            MessageBox.Show(e.ExceptionObject.ToString(), ConstHelper.ErrorInformation, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {//处理其它UI线程的异常事件
            MessageBox.Show(e.Exception.Message, ConstHelper.ErrorInformation, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        private static void ReadAppSettings()
        {
            AppSetting.BaseUri = ConfigurationManager.AppSettings[nameof(AppSetting.BaseUri)].ToString();
            AppSetting.LocalLoggedUsernames = ConfigurationManager.AppSettings[nameof(AppSetting.LocalLoggedUsernames)].ToString();
            AppSetting.CurrentOrganizationId = Convert.ToInt64(ConfigurationManager.AppSettings[nameof(AppSetting.CurrentOrganizationId)]);
        }
    }

  

标签:OK,AppSetting,处理,void,应用程序,Application,WinForms,static,线程
From: https://www.cnblogs.com/friend/p/18186386

相关文章

  • 振弦采集仪在岩土工程监测中的数据处理与结果展示
    振弦采集仪在岩土工程监测中的数据处理与结果展示河北稳控科技振弦采集仪是岩土工程监测中常用的一种设备,用于采集地下土体振动信号,通过对数据的处理与结果的展示,可以有效地评估土体的动力特性和工程的稳定性。 振弦采集仪通过安装在土体中的振弦传感器,可以对土体的振动信号......
  • FlexibleButton - 一个小巧灵活的C语言按键处理库+SerialChart - 能将串口数据实时绘
    1、FlexibleButton-一个小巧灵活的C语言按键处理库FlexibleButton是一个基于标准C语言的小巧灵活的按键处理库,支持单击、连击、短按、长按、自动消抖,可以自由设置组合按键,可用于中断和低功耗场景。项目主页:https://github.com/murphyzhao/FlexibleButton该按键库解耦了......
  • Java异常处理的最佳实践
      本文是关于Exception处理的一篇不错的文章,从JavaException的概念介绍起,依次讲解了Exception的类型(Checked/Unchecked),Exception处理的最佳实现:选择Checked还是Unchecked的几个经典依据Exception的封装问题如无必要不要创建自己的Exception不要用Excepti......
  • dbt snapshot 处理简单说明
    dbt的snapshot实际上也是一种物化处理,支持与test,docs,稍有不同就是dbt没定义独立的block扩展,以下是一个简单说明dbt目前默认的snapshot是基于了scd2模型使用包含了配置以及snapshot定义,配置支持dbt_project项目级以及独立snapshot定义,对于snapshot是需要指定策略的......
  • 从零手写实现 tomcat-09-servlet 处理类
    创作缘由平时使用tomcat等web服务器不可谓不多,但是一直一知半解。于是想着自己实现一个简单版本,学习一下tomcat的精髓。系列教程从零手写实现apacheTomcat-01-入门介绍从零手写实现apacheTomcat-02-web.xml入门详细介绍从零手写实现tomcat-03-基本的socket实......
  • 204-基于Xilinx Virtex-6 XC6VLX240T 和TI DSP TMS320C6678的信号处理板
    基于XilinxVirtex-6XC6VLX240T和TIDSPTMS320C6678的信号处理板 1、板卡概述    板卡由北京太速科技自主研发,基于VPX架构,主体芯片为两片TIDSPTMS320C6678,两片Virtex-6XC6VLX240T-ff1156FPGA,1个RapidIOSwitch。FPGA连接FMC子卡。FPGA......
  • 使用selenium时,用webdriver初始化浏览器时间过久并伴随报错 operation timed out 的处
    我使用的系统是archlinux,在日常更新软件包时系统自动将selenium更新到目前(2024年5月)最新的版本,即:python-selenium4.20.0-1。在运行我的爬虫时报错缺少依赖包,经过一番查询得知现在的驱动由webdriver_manger统一接管了。webdrivermanger来对浏览器驱动和浏览器版本进行管理,但aur......
  • WPS 提示"图片太大,超过部份将被截去" 问题处理
    再win10上使用wps-et打开xlsx后,如果剪切或负值一整行数据时,有以下提示:"图片太大,超过部份将被截去" 主要问题在于win10的剪贴板历史功能开启。只要将其关闭即可解决此问题 另外,其他的剪贴板工具也会造成此问题.例如Ditto.关闭他们即可解决这个问题.......
  • 批处理文本替换脚本
    将AAA文件里全部子文件中包含aaabbbccc的内容分别替换为eeefffggg点击查看代码chcp65001@echooffsetlocalenabledelayedexpansion::创建一个临时文件来保存包含目录列表的文件名dir/b/ad"AAA">temp_dirs.txt::检查临时文件是否存在......
  • 从零手写实现 tomcat-07-war 如何解析处理三方的 war 包?
    创作缘由平时使用tomcat等web服务器不可谓不多,但是一直一知半解。于是想着自己实现一个简单版本,学习一下tomcat的精髓。系列教程从零手写实现apacheTomcat-01-入门介绍从零手写实现apacheTomcat-02-web.xml入门详细介绍从零手写实现tomcat-03-基本的socket实......