Xamarin.ios Xamarian/MonoTouch:将System.Exception转换为NSException
我正在使用以下绑定将Flurry Analytics集成到我的Xamarin/MonoTouch iOS应用程序中: 现在,我想使用Flurry Analytical的错误日志:Xamarin.ios Xamarian/MonoTouch:将System.Exception转换为NSException,xamarin.ios,xamarin,Xamarin.ios,Xamarin,我正在使用以下绑定将Flurry Analytics集成到我的Xamarin/MonoTouch iOS应用程序中: 现在,我想使用Flurry Analytical的错误日志: void LogError (string errorID, string message, NSException exception); 我在AppDelegate中捕获以下代码的异常: AppDomain.CurrentDomain.UnhandledException += (object sender,
void LogError (string errorID, string message, NSException exception);
我在AppDelegate中捕获以下代码的异常:
AppDomain.CurrentDomain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) => { /**/ };
然而,据我所知,Xamarin/MonoTouch已将所有NSException转换为System.Exception
是否可以将System.Exception转换回NSException,以便我可以在LogError例程中使用它
或者可以在Xamarin/MonoTouch项目中捕获N异常吗?为什么不在AppDelegate类中使用UncaughtExceptionHandler?他们在你提到的github页面上有一个示例
static void UncaughtExceptionHandler(IntPtr handle)
{
var exception = new NSException(handle);
FA.Flurry.LogError("3584", exception.Reason, exception);
Console.WriteLine(@"Got an exception...{0} -- {1}", exception.Name, exception.Reason);
}
编辑:
该示例还显示了如何记录系统异常。中的异常是否确定UncaughtExceptionHandler静态方法应该工作?我没有发现任何例外。他们注释掉了一些DllImport代码,我认为这些代码是用来捕获异常的。但是,取消注释不会编译它。在另一个链接中,他们创建一个新的NSError,并使用错误消息+这个新的错误对象提供Flurry Analytics。这可能是一种选择。但是,如果能在Flurry中看到原始异常的堆栈信息,那就太好了。正如在第二个链接中演示的,还可以记录System.Exception。只需在日志记录时将ex.Message与ex.StackTrace连接起来。