Essas tentativas / capturas são equivalentes?

Cenário

Eu tenho um método que faz operação de banco de dados (digamos). Se durante essa operação alguma exceção for levantada, eu só quero lançar essa exceção para o chamador. Não quero executar nenhuma tarefa específica no bloco catch, assumindo que o chamador fará o que quiser com essa exceção. Nesse cenário, qual é a técnica de manipulação de exceção apropriada?

try
{
    // Some work that may generate exception
}
catch(Exception)
{
    throw;
}
finally
{
    // Some final work
}

O equivalente acima é o seguinte try / catch / finalmente?

try
{
    // Some work that may generate exception
}
catch
{
    throw;
}
finally
{
    // Some final work
}

O acima é equivalente à seguinte tentativa / finalmente?

try
{
    // Some work that may generate exception
}
finally
{
    // Some final work
}

Qual é o melhor que o outro? Qual deles deve ser usado?

questionAnswers(3)

yourAnswerToTheQuestion