Мені цікаво, що найкращий спосіб - це "якщо все інше не вдасться зрозуміти".
Я маю на увазі, що ви обробляєте якомога більше винятків у своїй програмі, але все-таки обов’язково мають бути помилки, тому мені потрібно мати щось, що вловлює всі необроблені винятки, щоб я міг збирати інформацію та зберігати їх у базі даних або подавати до веб-служби.
Чи захоплює все подія AppDomain.CurrentDomain.UnhandledException? Навіть якщо додаток багатопотоковий?
Примітка: Windows Vista надає власні функції API, які дозволяють будь-якій програмі відновити себе після аварії ... не можу зараз придумати назву ... але я волію не використовувати її, оскільки багато наших користувачів все ще використовують Windows XP.