Чтобы не потерять stack trace при пробросе исключения в Java, нужно использовать конструктор исключения с параметром cause или метод initCause, либо просто пробросить исходное исключение без создания нового.
Когда пробрасываешь исключения, что используешь, чтобы не потерять stack trace?
Чтобы не потерять stack trace при пробросе исключения в Java, нужно использовать конструктор исключения с параметром cause или метод initCause, либо просто пробросить исходное исключение без создания нового.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Чтобы не потерять stack trace при пробросе исключения в Java, нужно использовать конструктор исключения с параметром cause или метод initCause, либо просто пробросить исходное исключение без создания нового.
Например:
try {
// код, который может выбросить исключение
} catch (IOException e) {
throw new RuntimeException("Ошибка при обработке", e); // передаём исходное исключение как cause
}
Так стек вызовов сохраняется и доступен для отладки.