В приведенном ниже коде генерируется трассировка стека исключений в обоих режимах отладки и выпуска:
static class ET
{
public static void E1()
{
throw new Exception("E1");
}
public static void E2()
{
try
{
E1();
}
catch (Exception e)
{
throw;
}
}
public static void Entry()
{
try
{
E2();
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
}
}
}
Результат в режиме отладки:
в ET.E1() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 47
в ET.E2() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 58
в ET.Entry() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 68
Результат в режиме деблокирования:
в ET.E2() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 55
в ET.Entry() в D:\myStudio\CSharp\CSharp4.0\MyCSharp\ExceptionHandling.cs: строка 68
Обратите внимание, что первая строка из результата в режиме Release отсутствует. Как вернуть строку нарушения в режим выпуска.