Получить StackTrace можно несколькими способами, это зависит от того, что больше всего соответствует вашим потребностям. В любом случае, я бы посоветовал вам попробовать следующее.
- Добавьте обратный вызов к событию
AppDomain.FirstChanceException
, в начале вашего проекта, например, до возникновения ошибок, которые вы хотите поймать / войти. Это может выглядеть примерно так:
public static Main()
{
AppDomain.CurrentDomain.FirstChanceException += CurrentDomain_FirstChanceException;
}
private static void CurrentDomain_FirstChanceException(object sender, FirstChanceExceptionEventArgs e)
{
}
После этого добавьте
Environment.StackTrace
в методе
CurrentDomain_FirstChanceException
. Он будет содержать текущий
StackTrace
как
string
. Из моего тестирования это включает
FileName
и
FileLineNumber
.
var currentStackTrace = Environment.StackTrace;
// Now it is on to you on what you want to do with the StackTrace. This could be some kind of logging.
Обратите внимание, что это будет регистрировать ALL исключений, выданных AppDomain
, нет независимо от того, обрабатываются ли они кодом, например, try/catch
.