Junior
Jak byste vyhodili výjimky výše ve volacím zásobníku?
sobes.tech AI
Odpověď od AI
Používám klíčové slovo throw k opětovnému vyhození nebo vytvoření nové výjimky.
public void method1() throws CustomException {
try {
// Nějaký kód, který může vyvolat AnotherException
method2();
} catch (AnotherException e) {
// Zachytíme AnotherException
// Zabalíme jej do CustomException a vyhodíme výš
throw new CustomException("Chyba v Method2: " + e.getMessage(), e);
}
}
public void method2() throws AnotherException {
// Nějaký kód, který může vyvolat výjimku
throw new AnotherException("Něco se pokazilo v Method2");
}
class CustomException extends Exception {
public CustomException(String message, Throwable cause) {
super(message, cause);
}
}
class AnotherException extends Exception {
public AnotherException(String message) {
super(message);
}
}
Nebo, pokud chcete pouze znovu vyhodit zachycenou výjimku bez jejího vytváření:
public void methodA() throws SomeException {
try {
methodB();
} catch (SomeException e) {
// Logování nebo jiné akce
// Znovu vyhodíme stejnou výjimku
throw e;
}
}
public void methodB() throws SomeException {
// Kód, který může vyhodit SomeException
throw new SomeException("Chyba v MethodB");
}
class SomeException extends Exception {
public SomeException(String message) {
super(message);
}
}