Когда пробрасываешь исключения, что используешь, чтобы не потерять stack trace?

Чтобы не потерять stack trace при пробросе исключения в Java, нужно использовать конструктор исключения с параметром cause или метод initCause, либо просто пробросить исходное исключение без создания нового.

Короткий ответ

Что ответить на собеседовании

Чтобы не потерять stack trace при пробросе исключения в Java, нужно использовать конструктор исключения с параметром cause или метод initCause, либо просто пробросить исходное исключение без создания нового.

Подробный разбор

Ответ с пояснениями

Чтобы не потерять stack trace при пробросе исключения в Java, нужно использовать конструктор исключения с параметром cause или метод initCause, либо просто пробросить исходное исключение без создания нового.

Например:

try {
    // код, который может выбросить исключение
} catch (IOException e) {
    throw new RuntimeException("Ошибка при обработке", e); // передаём исходное исключение как cause
}

Так стек вызовов сохраняется и доступен для отладки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее