У C # я можу використовувати throw;
оператор, щоб повторно скинути виняток, зберігаючи слід стека:
try
{
...
}
catch (Exception e)
{
if (e is FooException)
throw;
}
Чи є щось подібне в Java ( що не втрачає оригінальний слід стека )?
Throwable
s не змінюються, кидаючи їх. Щоб оновити слід стека, вам потрібно зателефонувати fillInStackTrace()
. Зручно цей метод викликається в конструкторі a Throwable
.
throw e;
втратить стек-тракт. Але не на Java.