Ответ 1
Это зависит от типа используемого приложения. Вы всегда должны регистрировать событие AppDomain.UnhandledException
при запуске приложения:
AppDomain.CurrentDomain.UnhandledException += (s, e) =>
{
var exception = (Exception)e.ExceptionObject;
// Log to log4net.
};
При использовании приложения ASP.NET вы можете подключиться к событию HttpApplication.Error
, используя Global.asax для этого. При использовании приложения Windows Forms вы можете подключиться к событию Application.ThreadException
.