【问题标题】:Getting detailed exception info for unhandled exceptions in Xamarin Android获取 Xamarin Android 中未处理异常的详细异常信息
【发布时间】:2018-03-28 07:28:39
【问题描述】:
如果我在 Xamarin Android 中遇到未处理的异常,就像使用 Visual Studio 进行调试时一样,我会收到以下弹出窗口:
如果我点击复制详细信息,我会得到
未处理的异常:System.AggregateException:发生一个或多个错误。发生了
如何深入了解内部异常?
【问题讨论】:
标签:
visual-studio
xamarin.android
【解决方案1】:
这是来自我们的一个应用程序的 sn-p,我们只是针对当前域的 UnhandledException 事件创建一个委托,我们在应用程序的“MainApplication”类中执行此操作(有些人使用“MainActivity”代替,如果他们没有实现了生命周期回调插件)。
基本上,您希望在作为应用程序主要起点的任何课程中执行此操作。
作为参考'ApplicationLog'只是我创建的一个类,用于将文件目录写入日志文件,你可以在这个类中做任何你想做的事情,这里的关键是'e'将包含你的堆栈跟踪信息。
关于您是异常,值得注意的是,AggregateException 最常由 Task 中的代码、Parallel 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
);
};