Xamarin / MonoTouch:将System.Exception转换为NSException

时间:2013-07-17 05:31:49

标签: xamarin.ios xamarin

我正在使用以下绑定将Flurry Analytics集成到我的Xamarin / MonoTouch iOS应用程序中: https://github.com/mono/monotouch-bindings/tree/master/FlurryAnalytics

现在,我想使用Flurry Analytic的错误记录:

void LogError (string errorID, string message, NSException exception);

我在AppDelegate中使用此代码捕获异常:

AppDomain.CurrentDomain.UnhandledException += (object sender, UnhandledExceptionEventArgs e) => { /**/ };

但是,据我所知,Xamarin / MonoTouch已将所有NSExceptions转换为System.Exception。

System.Exception可以转换回NSException,所以我可以在LogError例程中使用它吗?

或者是否可以在Xamarin / MonoTouch项目中捕获NSExceptions?

1 个答案:

答案 0 :(得分:1)

为什么不在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);
        }

https://github.com/mono/monotouch-bindings/blob/master/FlurryAnalytics/sample/Xamarin.FlurryAnalyticsSample/AppDelegate.cs

编辑: 该示例还显示了如何在AnalyticsViewController.cs

中记录System.Exception