Suponho que por "idêntico" você está se referindo ao comportamento.
O comportamento de uma função pode ser determinado por:
1) Valor devolvido
2) Exceções lançadas
3) Efeitos colaterais (ou seja, mudanças no heap, sistema de arquivos, etc.)
Nesse caso, o primeiro método propaga qualquer exceção, enquanto o segundo não lança nenhuma exceção verificada e também engole a maioria das exceções não verificadas, de modo que o comportamento É diferente.
No entanto, se você garantir que "fazer algo" nunca lança uma exceção, o comportamento seria idêntico (embora o compilador exija que o chamador trate a exceção, na primeira versão)
--editar--
Do ponto de vista do design da API, os métodos são completamente diferentes em seu contrato. Além disso, lançar a classe Exception não é recomendado. Tente lançar algo mais específico para permitir que o chamador trate melhor a exceção.