Смущает содержимое Exception.StackTrace

Предположим, у меня есть следующая ситуация:

9     class Program
10        {
11            public static void WrapperMethod(Action func)
12            {
13                try
14                {
15                    //throw new Exception("Case 1");
16                    func.Invoke();
17                }
18                catch (Exception ex)
19                {
20                    Console.WriteLine(ex.StackTrace);
21                }
22            }
23    
24            static void Main(string[] args)
25            {
26                WrapperMethod(() => { throw new Exception("Case 2"); });
27            }
28        }

Я запускаю его и получаю следующий результат:

at TestExceptions.Program.<Main>b__0() in c:\users\administrator\documents\visual studio 2010\Projects\TestExceptions\TestExceptions\Program.cs:line 26    
at TestExceptions.Program.WrapperMethod(Action func) in c:\users\administrator\documents\visual studio 2010\Projects\TestExceptions\TestExceptions\Program.cs:line 16

Если я раскомментирую, выдает новое исключение («Случай 1»); вывод такой:

at TestExceptions.Program.WrapperMethod(Action func) in c:\users\administrator\documents\visual studio 2010\Projects\TestExceptions\TestExceptions\Program.cs:line 15

Итак, мой вопрос: почему в первом случае я могу видеть полный путь, включая функцию Main, тогда как во втором случае я не вижу того же самого. Как я могу отобразить более полную информацию, если производственный код аналогичен второму сценарию.

8
задан Eugeniu Torica 18 March 2011 в 09:16
поделиться