我想在我的xamarin mac应用程序中获取未处理异常的崩溃报告,例如用于跟踪android和ios应用程序异常的曲棍球应用程序。我搜索了很多,但没有得到任何跟踪未处理的异常的应用程序。请建议用于跟踪xamarin.mac中的例外情况的任何应用。提前谢谢。
答案 0 :(得分:1)
任务异常通常不被观察到(即,在未等待的Task.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);
}
答案 1 :(得分:0)
我建议您自己实施。 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();
之后设置处理程序:
System.AppDomain.CurrentDomain.UnhandledException
+= CurrentDomain_UnhandledException;
string a = null;
System.Diagnostics.Debug.WriteLine(a.Length);
最后两行当然会强制空指针异常。
缺少一件:
private static void CurrentDomain_UnhandledException(object sender, System.UnhandledExceptionEventArgs e)
{
System.Diagnostics.Debug.WriteLine("oh no");
}
希望这有帮助。