Предположим, у меня следующая ситуация:
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, а во втором случае не вижу того же самого.
Как я могу отобразить более полную информацию, если производственный код похож на сценарий второго случая.