如何跟踪xamarin.mac应用程序未处理的异常

如何跟踪xamarin.mac应用程序未处理的异常,xamarin,xamarin.mac,Xamarin,Xamarin.mac,我想在我的xamarin mac应用程序(如用于跟踪android和ios应用程序异常的曲棍球应用程序)中获取未处理异常的崩溃报告。我搜索了很多,但没有得到任何跟踪未处理异常的应用程序。请在xamarin.mac中推荐任何用于跟踪异常的应用程序。提前感谢。我建议您自己实施。Main.cs文件充当Xamarin Mac应用程序的主要入口点。它包含一个静态Main方法,用于创建新的Xamarin.Mac应用程序实例: using AppKit; namespace Test { stati

我想在我的xamarin mac应用程序(如用于跟踪android和ios应用程序异常的曲棍球应用程序)中获取未处理异常的崩溃报告。我搜索了很多,但没有得到任何跟踪未处理异常的应用程序。请在xamarin.mac中推荐任何用于跟踪异常的应用程序。提前感谢。

我建议您自己实施。Main.cs文件充当Xamarin Mac应用程序的主要入口点。它包含一个静态
Main
方法,用于创建新的Xamarin.Mac应用程序实例:

using AppKit;

namespace Test
{
    static class MainClass
    {
        static void Main(string[] args)
        {
            NSApplication.Init();
            NSApplication.Main(args);
        }
    }
}
您可以尝试在此处设置处理程序(在
NSApplication.Init()之后;

最后两行当然强制执行空指针异常

缺少一件:

private static void CurrentDomain_UnhandledException(object sender, System.UnhandledExceptionEventArgs e)
{
    System.Diagnostics.Debug.WriteLine("oh no");
}

希望这能有所帮助。

任务异常通常未被发现(即,在未等待的任务中发生的任何异常。Run())。您可以通过将其放入AppDelegate的DidFinishLaunching覆盖中来捕获它们:

TaskScheduler.UnobservedTaskException += 
TaskScheduler_UnobservedTaskException;

void TaskScheduler_UnobservedTaskException(object sender, 
UnobservedTaskExceptionEventArgs e)
{
    System.Console.WriteLine("**Unobserved Exception**");
    System.Console.WriteLine(e.Exception.Message);
}

嗨,Thomas,感谢您宝贵的支持。我尝试过使用代码,因为您提供的示例工作得很好,但没有捕获应用程序中所有未处理的异常。在我的应用程序中,在浏览了几页之后,应用程序崩溃,但上面的代码没有捕获未处理的异常。很遗憾,我的建议没有按预期工作。根据文档,
CurrentDomain
获取当前线程的应用程序域。可能没有引发处理程序的代码是在另一个线程中执行的?不幸的是,我没有其他想法。此解决方案未捕获的崩溃可能发生在核心图形绘制层RoKay上。谢谢你,ThomasStepheaw有什么问题吗捕获此类异常的另一个想法是什么?。
TaskScheduler.UnobservedTaskException += 
TaskScheduler_UnobservedTaskException;

void TaskScheduler_UnobservedTaskException(object sender, 
UnobservedTaskExceptionEventArgs e)
{
    System.Console.WriteLine("**Unobserved Exception**");
    System.Console.WriteLine(e.Exception.Message);
}