2016-10-25 4 views
2

мое приложение разбился неожиданно, я не мог уловить, что за любое исключение ... Я зарегистрированный обработчик:xamarin.mac отчет о сбое приложения

static void Main (string [] args) 
     { 
      NSApplication.Init(); 
      NSApplication.Main (args); 

      AppDomain.CurrentDomain.UnhandledException += HandleUnhandledException; 
     } 


     static void HandleUnhandledException (object sender, UnhandledExceptionEventArgs e) 
     { 
      //Log the exception... 
      FileHelper.CreateLogFile ("app crash", e.ExceptionObject.ToString()); 
     } 

Но это не называется.

Кроме того, я не вижу какой-либо отчет внутри:

~/Library/Logs/DiagnosticReports

Есть ли способ, чтобы увидеть отчеты об ошибках моего приложения?

ответ

2

AppDomain.CurrentDomain.UnhandledException только срабатывает, когда у вас есть Исключение происходит, пузырь на весь стек. Однако, если вы терпите крах в собственном коде или с NSException в собственном коде или бросаете управляемое исключение, будучи вызванным из собственного кода, скорее всего, он не сделает то, что вы хотите/не вызвали вообще.

Попробуйте вместо этого:

ObjCRuntime.Runtime.MarshalManagedException += (sender, args) => 
{ 
    Console.WriteLine (args.Exception); 
}; 

Вы также можете посмотреть в эти варианты на ММР передаваемых ObjectiveC-исключениях и передаваемых управляемые исключениях (https://github.com/xamarin/xamarin-macios/blob/master/tools/common/Driver.cs#L24).

Смежные вопросы