Назад к вопросам
Junior
70
questionbank
Как бы вы выбросили исключения выше в стек вызовов?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Использую ключевое слово throw для повторного или нового создания исключения.
public void method1() throws CustomException {
try {
// Какой-то код, который может выбросить AnotherException
method2();
} catch (AnotherException e) {
// Перехватываем AnotherException
// Оборачиваем его в CustomException и выбрасываем выше
throw new CustomException("Ошибка в Method2: " + e.getMessage(), e);
}
}
public void method2() throws AnotherException {
// Какой-то код, который может выбросить исключение
throw new AnotherException("Что-то пошло не так в Method2");
}
class CustomException extends Exception {
public CustomException(String message, Throwable cause) {
super(message, cause);
}
}
class AnotherException extends Exception {
public AnotherException(String message) {
super(message);
}
}
Либо, если нужно просто пробросить пойманное исключение, не создавая новое:
public void methodA() throws SomeException {
try {
methodB();
} catch (SomeException e) {
// Логирование или другие действия
// Перебрасываем то же исключение выше по стеку
throw e;
}
}
public void methodB() throws SomeException {
// Код, который может выбросить SomeException
throw new SomeException("Ошибка в MethodB");
}
class SomeException extends Exception {
public SomeException(String message) {
super(message);
}
}