Junior
Jak wywołałbyś wyjątki wyżej w stosie wywołań?
sobes.tech AI
Odpowiedź od AI
Używam słowa kluczowego throw, aby ponownie rzucić lub utworzyć nowy wyjątek.
public void method1() throws CustomException {
try {
// Jakiś kod, który może rzucić AnotherException
method2();
} catch (AnotherException e) {
// Przechwytujemy AnotherException
// Opakowujemy go w CustomException i rzucamy wyżej
throw new CustomException("Błąd w Method2: " + e.getMessage(), e);
}
}
public void method2() throws AnotherException {
// Jakiś kod, który może rzucić wyjątek
throw new AnotherException("Coś poszło nie tak w Method2");
}
class CustomException extends Exception {
public CustomException(String message, Throwable cause) {
super(message, cause);
}
}
class AnotherException extends Exception {
public AnotherException(String message) {
super(message);
}
}
Lub, jeśli chcesz po prostu przepuścić złapany wyjątek bez tworzenia nowego:
public void methodA() throws SomeException {
try {
methodB();
} catch (SomeException e) {
// Logowanie lub inne działania
// Przepuszczamy ten sam wyjątek wyżej w stosie
throw e;
}
}
public void methodB() throws SomeException {
// Kod, który może rzucić SomeException
throw new SomeException("Błąd w MethodB");
}
class SomeException extends Exception {
public SomeException(String message) {
super(message);
}
}