这是我们的一个应用程序的片段,我们只是针对当前域的 UnhandledException 事件创建一个委托,我们在我们的应用程序“MainApplication”类中执行此操作(有些人如果没有实现生命周期回调,则使用“MainActivity”代替插入)。
基本上,无论您是应用程序的主要起点,您都想在哪个类中执行此操作。
作为参考,'ApplicationLog' 只是我创建的一个类,用于将文件目录写入日志文件,您可以在该类中做任何您想做的事情,这里的关键是 'e' 将包含您的堆栈跟踪信息。
关于您是例外,值得注意的是 AggregateException 最常由任务中的代码或并行 ForEach 语句甚至 SQL 命令等抛出。
希望这可以帮助。
AppDomain.CurrentDomain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) =>
{
// Record the error in our application logs
ApplicationLog.AppendFile(
DateTime.Now.ToString() + " : " + "[CRITICAL GLOBALLY HANDLED EXCEPTION] - Critical exception has been hit! - Message: " + e.ExceptionObject +
System.Environment.NewLine + System.Environment.NewLine +
"========= Critcal Error has been hit, application closed =========" +
System.Environment.NewLine + System.Environment.NewLine
);
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句