В моем App.xaml.cs
у меня есть эти коды, чтобы перехватывать исключения и регистрировать их
public App()
{
SetupExceptionHandlingInApp();
// other codes
}
private void SetupExceptionHandlingInApp()
{
this.DispatcherUnhandledException += (s, e) =>
{
e.Handled = true;
//LOGGING CODE HERE
this.Shutdown(-1);
};
}
[STAThread]
public static void Main()
{
SetupExceptionHandlingInMain();
//other codes
}
private static void SetupExceptionHandlingInMain()
{
AppDomain.CurrentDomain.UnhandledException += (s, e) =>
{
//LOGGING CODE HERE
Environment.Exit(1);
};
System.Windows.Forms.Application.ThreadException += (s, e) =>
{
//LOGGING CODE HERE
Environment.Exit(1);
};
TaskScheduler.UnobservedTaskException += (s, e) =>
{
//LOGGING CODE HERE
};
}
Почти в каждом случае я могу поймать исключение и записать его.Но иногда происходит сбой приложения во время выполнения, и я не могу найти зарегистрированную ошибку об исключении, которое вызвало сбой.
Я пропустил метод, кроме методов выше, чтобы перехватить исключение?Я посмотрел какую-то статью о SO, но почти они использовали эти методы выше.
log4net работает хорошо, потому что я вижу все ошибки и журнал INFO.
EDIT
После следования предложению Panagiotis Kanavos я обнаружил ошибку:
Приложение: xxx.exe
Версия du Framework: v4.0.30319
Описание:Процесс обработки и получения информации о состоянии дел в интернете1026 * Приложение: xxx.exe
Версия платформы: v4.0.30319
Описание: процесс был прерван из-за внутренней ошибки .NET Runtime по IP 547541C4 (54380000)с кодом выхода 80131506.