En C #, je peux utiliser l' throw;instruction pour renvoyer une exception tout en préservant la trace de la pile:
try
{
...
}
catch (Exception e)
{
if (e is FooException)
throw;
}
Y a-t-il quelque chose comme ça en Java ( qui ne perd pas la trace de pile d'origine )?
Throwables ne sont pas modifiés en les jetant. Pour mettre à jour la trace de pile, vous devez appeler fillInStackTrace(). Idéalement, cette méthode est appelée dans le constructeur de a Throwable.
throw e;perdra la trace de pile. Mais pas en Java.