其他分享
首页 > 其他分享> > Winform增加全局异常捕获

Winform增加全局异常捕获

作者:互联网

在Program类中

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
try
{

//设置应用程序处理异常方式:ThreadException处理
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
//处理UI线程异常
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());

}
catch (Exception ex)
{
LogService.WriteErrorLog($"系统异常,{DateTime.Now}异常原因{ex.Message}");
}

}

static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
//string str = GetExceptionMsg(e.Exception, e.ToString());
//MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
//LogManager.WriteLog(str);
LogService.WriteErrorLog($"Application_ThreadException异常,{DateTime.Now};异常原因{e.Exception.ToString() + e.ToString()}");
Application.Restart();
}

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
//string str = GetExceptionMsg(e.ExceptionObject as Exception, e.ToString());
//MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
//LogManager.WriteLog(str);
LogService.WriteErrorLog($"CurrentDomain_UnhandledException异常,{DateTime.Now};异常原因{e.ExceptionObject.ToString() + e.ToString()}");
Application.Restart();
}

标签:ThreadException,CurrentDomain,捕获,Application,ToString,str,全局,异常,Winform
来源: https://www.cnblogs.com/wutongTree/p/14849168.html