• 大小: 56KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-10-26
  • 语言: C#
  • 标签:

资源简介

WPF遇到意外错误使其崩溃,这段简单的代码可以解决WPF崩溃后,程序重启,并且将错误信息记录到XML中!

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.xml;
using System.xml.Linq;

namespace WpfAppCollapseTest
{
    /// 
    /// App.xaml 的交互逻辑
    /// 

    public partial class App : Application
    {
        public App()
        {
            Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
        }

        private void Current_DispatcherUnhandledException(object sender System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
        {
            xmlDocument xml = new xmlDocument();
            xmlElement root err errTime mes = null;
            try
            {
                if (File.Exists(“err.xml“))
                {
                    xml.Load(“err.xml“);
                    root = xml.DocumentElement;
                    err = xml.CreateElement(“err“);
                    root.AppendChild(err);
                    errTime = xml.CreateElement(“errTime“);
                    errTime.InnerText = DateTime.Now.ToString();
                    err.AppendChild(errTime);
                    mes = xml.CreateElement(“mes“);
                    mes.InnerText = e.Exception.ToString();
                    err.AppendChild(mes);
                    xml.Save(@“err.xml“);
                }
                else
                {
                    root = xml.CreateElement(“root“);
                    xml.AppendChild(root);
                    err = xml.CreateElement(“err“);
                    root.AppendChild(err);
                    errTime = xml.CreateElement(“errTime“);
                    errTime.InnerText = DateTime.Now.ToString();
                    err.AppendChild(errTime);
                    mes = xml.CreateElement(“mes“);
                    mes.InnerText = e.Exception.ToString();
                    err.AppendChild(mes);
                    xml.Save(@“err.xml“);
                }
            }
            catch (Exception)
            {
                
                throw;
            }
            
            //MessageBox.Show(“我们很抱歉,当前应用程序遇到一些问题,该操作已经终止,请进行重试,如果问题继续存在,请联系管理员.“ “意外的操作“ MessageBoxButton.OK MessageBoxImage.Information);//这里通常需要给用户一些较为友好的提示,并且后续可能的操作
            e.Handled = true;//使用这一行代码告诉运行时,该异常被处理了,不再作为UnhandledException抛出了。

            System.Windows.Application.Current.Shutdown();
            System.Reflection.Assembly.GetEntryAssembly();
            string startpath = System.IO.Directory.GetCurrentDirectory();
            System.Diagnostics.Process.Start(startpath + “/WpfAppCollapseTest.exe“);  //xxxx.exe为要启动的程序
        }
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        187  2016-04-01 10:26  WpfAppCollapseTest\WpfAppCollapseTest\App.config

     文件        329  2016-04-01 10:26  WpfAppCollapseTest\WpfAppCollapseTest\App.xaml

     文件       3052  2016-04-01 12:56  WpfAppCollapseTest\WpfAppCollapseTest\App.xaml.cs

     文件      11776  2016-04-01 12:54  WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.exe

     文件        187  2016-04-01 10:26  WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.exe.config

     文件      32256  2016-04-01 12:54  WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.pdb

     文件      23168  2016-04-01 12:55  WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.vshost.exe

     文件        187  2016-04-01 10:26  WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.vshost.exe.config

     文件        490  2013-03-18 17:00  WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.vshost.exe.manifest

     文件       1203  2016-04-01 10:41  WpfAppCollapseTest\WpfAppCollapseTest\MainWindow.xaml

     文件       1227  2016-04-01 11:01  WpfAppCollapseTest\WpfAppCollapseTest\MainWindow.xaml.cs

     文件       2334  2016-04-01 10:30  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\App.g.cs

     文件       2334  2016-04-01 10:30  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\App.g.i.cs

     文件       7108  2016-04-01 10:41  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件       1620  2016-04-01 10:41  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\MainWindow.baml

     文件       4997  2016-04-01 10:41  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\MainWindow.g.cs

     文件       4997  2016-04-01 10:41  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\MainWindow.g.i.cs

     文件          0  2016-04-01 10:26  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

     文件          0  2016-04-01 10:26  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

     文件          0  2016-04-01 10:26  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

     文件       1194  2016-04-01 12:55  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.csproj.FileListAbsolute.txt

     文件        919  2016-04-01 10:30  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.csproj.GenerateResource.Cache

     文件       2354  2016-04-01 10:30  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.csprojResolveAssemblyReference.cache

     文件      11776  2016-04-01 12:54  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.exe

     文件       1848  2016-04-01 10:41  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.g.resources

     文件      32256  2016-04-01 12:54  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.pdb

     文件        180  2016-04-01 10:30  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.Properties.Resources.resources

     文件        287  2016-04-01 12:54  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest_MarkupCompile.cache

     文件        286  2016-04-01 10:41  WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest_MarkupCompile.i.cache

     文件       2217  2016-04-01 10:26  WpfAppCollapseTest\WpfAppCollapseTest\Properties\AssemblyInfo.cs

............此处省略18个文件信息

评论

共有 条评论

相关资源