Junior
Ako by ste vyhodili výnimky vyššie v zásobníku volaní?
sobes.tech AI
Odpoveď od AI
Používam kľúčové slovo throw, aby som znovu vyhodil alebo vytvoril novú výnimku.
public void method1() throws CustomException {
try {
// Nejaký kód, ktorý môže vyhodiť AnotherException
method2();
} catch (AnotherException e) {
// Zachytíme AnotherException
// Zabalíme ho do CustomException a vyhodíme vyššie
throw new CustomException("Chyba v Method2: " + e.getMessage(), e);
}
}
public void method2() throws AnotherException {
// Nejaký kód, ktorý môže vyhodiť výnimku
throw new AnotherException("Niečo sa 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);
}
}
Alebo, ak chcete len znovu vyhodiť zachytenú výnimku bez jej vytvárania:
public void methodA() throws SomeException {
try {
methodB();
} catch (SomeException e) {
// Logovanie alebo iné akcie
// Znovu vyhodíme tú istú výnimku
throw e;
}
}
public void methodB() throws SomeException {
// Kód, ktorý môže vyhodiť SomeException
throw new SomeException("Chyba v MethodB");
}
class SomeException extends Exception {
public SomeException(String message) {
super(message);
}
}