Je suppose que par "identique" vous parlez de comportement.
Un comportement d'une fonction peut être déterminée par:
1) Valeur retournée
2) des exceptions lancées
3) des effets secondaires (i.Dans ce cas, la première méthode propage n'importe quelle exception, tandis que la seconde ne renvoie aucune exception vérifiée et avale aussi la plupart des exceptions non cochées, ce qui fait que le comportement est différent.
Toutefois, si vous garantissez que « faire quelque chose » ne lève jamais une exception, le comportement sera identique (bien que le compilateur exigera l'appelant à gérer l'exception, dans la première version)
--edit Du point de vue de la conception API, les méthodes sont complètement différentes dans leur contrat. En outre, lancer classe Exception n'est pas recommandé. Essayez de lancer quelque chose de plus spécifique pour permettre à l'appelant de mieux gérer l'exception.
Pas vraiment une réponse, mais vous pourriez être intéressé par article de Ned Batchelder [Exceptions dans la forêt tropicale] (http://nedbatchelder.com/text/exceptions-in-the-rainforest.html), qui aide à expliquer les cas généraux où un style ou l'autre doit être préféré. –
au lieu d'avoir "showException (e)" dans la capture, demandiez-vous si vous aviez "throws e" dans la capture à la place (ou ne pas avoir le try/catch du tout)? – MacGyver