C# で例外を catch したときにログするなどして もっかい throw するときは throw だけで例外を指定するとダメ

private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
this.method_1(); // Line.33
}
catch(Exception ex)
{
Console.WriteLine("method_1********");
Console.WriteLine("message:");
Console.WriteLine(ex.Message);
Console.WriteLine("stacktrace:");
Console.WriteLine(ex.StackTrace);
}

Console.WriteLine("");

try
{
this.method_2(); // Line.48
}
catch (Exception ex)
{
Console.WriteLine("method_2********");
Console.WriteLine("message:");
Console.WriteLine(ex.Message);
Console.WriteLine("stacktrace:");
Console.WriteLine(ex.StackTrace);
}
}

private void method_1()
{
try
{
exceptionMethod();
}
catch (Exception ex)
{
throw ex; // Line.68
}
}

private void method_2()
{
try
{
exceptionMethod();
}
catch (Exception)
{
throw; // Line.80
}
}

public void exceptionMethod()
{
throw new Exception("えらー"); // Line.86
}

throw ex で例外指定と throw だけのときでスタックトレースが変わる

method_1********
message:
えらー
stacktrace:
場所 samproj.Window4.method_1() 場所 C:\Users\user\Documents\Visual Studio 2015\Projects\samproj\proj02\Window4.xaml.cs:行 68
場所 samproj.Window4.Button_Click(Object sender, RoutedEventArgs e) 場所 C:\Users\user\Documents\Visual Studio 2015\Projects\samproj\proj02\Window4.xaml.cs:行 33

method_2********
message:
えらー
stacktrace:
場所 samproj.Window4.exceptionMethod() 場所 C:\Users\user\Documents\Visual Studio 2015\Projects\samproj\proj02\Window4.xaml.cs:行 86
場所 samproj.Window4.method_2() 場所 C:\Users\user\Documents\Visual Studio 2015\Projects\samproj\proj02\Window4.xaml.cs:行 80
場所 samproj.Window4.Button_Click(Object sender, RoutedEventArgs e) 場所 C:\Users\user\Documents\Visual Studio 2015\Projects\samproj\proj02\Window4.xaml.cs:行 48

throw だけだと元のを保持してくれる
throw ex にすると再度 throw したところになるので正確な場所がわからなくなる