Я пытаюсь получить список вызовов, сделанных от начала блока try, до исключения. В приведенном ниже коде, когда я попадаю в блок Catch, StackTrace в объекте Exception выглядит следующим образом:
в ConsoleApplication.Program.MethodC () / в
ConsoleApplication.Program.Main (String [] args).
Это вполне ожидаемо, но не помогает мне узнать историю звонков. У кого-нибудь есть идеи о том, как я могу это сделать?
static void MethodA() { }
static void MethodB() { }
static void MethodC() { throw new Exception(); }
static void Main(string[] args)
{
try
{
MethodA();
MethodB();
MethodC();
}
catch (Exception e)
{
// Get list of calls
throw;
}
}
Я был удивлен, увидев, что свойство StackTrace объекта Exception не является объектом StackTrace. Есть ли причина для этого?
В конце концов, цель всего этого проста. Если во время выполнения кода выдается исключение, я хочу посмотреть на метаданные (атрибут) каждого из вызванных методов.