Junior
Hogyan dobnád feljebb kivételt a hívási veremben?
sobes.tech MI
Válasz az MI-től
A throw kulcsszót használom, hogy újra dobjam vagy új kivételt hozzak létre.
public void method1() throws CustomException {
try {
// Valamilyen kód, ami dobhat AnotherException-t
method2();
} catch (AnotherException e) {
// Elkapjuk az AnotherException-t
// Beburkoljuk CustomException-be és feljebb dobjuk
throw new CustomException("Hiba a Method2-ben: " + e.getMessage(), e);
}
}
public void method2() throws AnotherException {
// Valamilyen kód, ami kivételt dobhat
throw new AnotherException("Valami rosszul sült el a Method2-ben");
}
class CustomException extends Exception {
public CustomException(String message, Throwable cause) {
super(message, cause);
}
}
class AnotherException extends Exception {
public AnotherException(String message) {
super(message);
}
}
Vagy, ha csak az elkapott kivételt akarod tovább dobni anélkül, hogy újat hoznál létre:
public void methodA() throws SomeException {
try {
methodB();
} catch (SomeException e) {
// Naplózás vagy más műveletek
// Ugyanazt a kivételt dobjuk tovább
throw e;
}
}
public void methodB() throws SomeException {
// Kód, ami dobhat SomeException-t
throw new SomeException("Hiba a MethodB-ben");
}
class SomeException extends Exception {
public SomeException(String message) {
super(message);
}
}