Мне интересно, как лучше всего иметь «если все остальное не удается его поймать»..NET - Какой лучший способ реализовать «улавливать все обработчики исключений»
Я имею в виду, вы обработки столько исключений, как это возможно в вашем приложении, но все еще обязаны быть ошибки, так что мне нужно что-то, что ловит все Необработанные исключения, так что я могу собирать информацию и хранить их в базе данных или отправить их в веб-службу.
Выполняет ли событие AppDomain.CurrentDomain.UnhandledException все? Даже если приложение многопоточно?
Боковое примечание: Windows Vista предоставляет собственные функции API, которые позволяют любому приложению восстановить себя после сбоя ... теперь не могу вспомнить имя ... но я бы предпочел не использовать его, так как многие наших пользователей по-прежнему используют Windows XP.
Это функция «Перезапустить диспетчер» в Windows Vista: http://www.danielmoth.com/Blog/2006/10/vista-restart-manager.html – huseyint
Я написал обширное сообщение в блоге об этом: [** Gotta catch 'em all: Обработка исключительных ситуаций с последними событиями в .NET с WinForms **] (http://jonathonreinhart.blogspot.com/2013/03/gotta-catch-em-all-last-chance.html) –
См. также [TaskScheduler.UnobservedTaskException] (https://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.unobservedtaskexception%28v=vs.110%29.aspx). – HuBeZa