разница throw; и throw ex; в С#

Подскажите в чём разница, когда происходит перебрасывание ошибки через throw; и throw ex;

try
{
    throw new Exception("Error");
}
catch (Exception e)
{
    throw;
    //throw e;
}

throw повторно выбрасывает исключение, которое было обнаружено, и сохраняет трассировку стека (путь к источнику исключения).
throw ex генерирует одно и то же исключение, но сбрасывает трассировку стека на этот метод.

Для проверки этого блок try-catch поместите в метод и вызовите его в другом блоке try-catch, после нахождения ошибки просмотрите её детали и значения её свойства StackTrace