W języku C # mogę użyć throw;
instrukcji, aby ponownie wygenerować wyjątek, zachowując ślad stosu:
try
{
...
}
catch (Exception e)
{
if (e is FooException)
throw;
}
Czy jest coś takiego w Javie ( która nie traci pierwotnego śladu stosu )?
Throwable
nie są modyfikowane przez ich rzucanie. Aby zaktualizować ślad stosu, musisz wywołać fillInStackTrace()
. Dogodnie ta metoda jest wywoływana w konstruktorze Throwable
.
throw e;
utraci ślad stosu. Ale nie w Javie.