zoukankan      html  css  js  c++  java
  • c#winform将全局异常抛出,不用大量写try()catch()

    一、在program.cs处完善成如下,但是这样后只能抛出主线程(UI)的错误,所以请看第二步

    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main()
    {
    //全局异常捕捉
    Application.ThreadException += Application_ThreadException; //UI线程异常
    AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; //多线程异常
    
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new FrmMain());
    }
    
    //UI线程异常
    static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {
    WinformException.FrmBugReport.ShowBug(e.Exception);
    }
    
    //多线程异常
    static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
    WinformException.FrmBugReport.ShowBug((Exception)e.ExceptionObject);
    }
    
     
    View Code

    二、将其他线程异常抛掷到主线程

    //
    Thread t = new Thread((ThreadStart)delegate
    {
    try
    {
    throw new Exception("非窗体线程异常");
    }
    catch (Exception ex)
    {
    this.BeginInvoke((Action)delegate
    {
    throw ex;
    });
    }
    });
    t.Start();
  • 相关阅读:
    getfacl语法2
    getfacl
    setfacl语法2
    setfacl语法
    特殊权限语法2
    特殊权限语法
    vim语法
    locate语法
    find语法
    dos语法
  • 原文地址:https://www.cnblogs.com/musexiaoluo/p/5063662.html
Copyright © 2011-2022 走看看