Я разрабатываю простое приложение для OSX с MonoMac. Когда мой опыт применения необработанного исключения, я ловлю их:NSApplication.SharedApplication.Terminate фактически не завершает мое приложение после необработанного исключения
AppDomain.CurrentDomain.UnhandledException + = (отправитель, е) => Неизвестных (e.ExceptionObject как исключение);
Внутри функции Unhandled() я регистрирую исключение и запускаю модальное окно, информирующее пользователя о том, что что-то пошло не так.
Затем я приступаю к тестированию, вызывая обычное исключение где-то в приложении. Появится окно отчета о сбое, и ошибка будет зарегистрирована.
Но после того, как это окно будет закрыто, я ожидаю, что приложение прекратит работу, как это было бы, если бы я не поймал ошибку. Это не; главное окно приложения и значок док-станции все еще присутствуют, но окно полностью заморожено.
Если я удаляю указанную выше строку кода, приложение полностью закрывается при сбое.
Я пытаюсь заставить приложение бросить по телефону:
NSApplication.SharedApplication.Terminate(myAppDelegate);
Но это, кажется, ничего не делать вообще. Я использую ту же самую строку кода в кнопке Quit приложения, и там она работает так, как ожидалось, поэтому после обнаружения необработанного исключения должно быть что-то особенное. Но что?
Я перекрываться следующее в моем AppDelegate на всякий случай, но это, кажется, не имеет никакого значения:
public override NSApplicationTerminateReply ApplicationShouldTerminate (NSApplication sender)
{
return NSApplicationTerminateReply.Now;
}
Я подумал, что, может быть, показывая модальную форму сделал что-то в состоянии приложения, но после тестирования я вижу, что я показываю модальную форму или нет, не имеет значения. Еще замороженное главное окно вместо закрытия.
EDIT: Я должен был что-то сделать неправильно, когда тестировал это. Он действительно работает так, как если бы я не отображал форму ошибки.
Любые идеи?
@ErlendD. см. мое редактирование – TheNextman
Да, все. Благодаря! –