Sobes.tech
Junior

Wie würden Sie Ausnahmen höher im Aufrufstapel auslösen?

sobes.tech KI

Antwort von AI

Ich verwende das Schlüsselwort throw, um eine Ausnahme erneut auszulösen oder eine neue zu erstellen.

public void method1() throws CustomException {
    try {
        // Irgend ein Code, der AnotherException auslösen kann
        method2();
    } catch (AnotherException e) {
        // Erfassen von AnotherException
        // Es in CustomException einwickeln und nach oben werfen
        throw new CustomException("Fehler in Method2: " + e.getMessage(), e);
    }
}

public void method2() throws AnotherException {
    // Irgend ein Code, der eine Ausnahme auslösen kann
    throw new AnotherException("Etwas ist schief gelaufen in Method2");
}

class CustomException extends Exception {
    public CustomException(String message, Throwable cause) {
        super(message, cause);
    }
}

class AnotherException extends Exception {
    public AnotherException(String message) {
        super(message);
    }
}

Oder, wenn Sie nur die gefangene Ausnahme weitergeben möchten, ohne eine neue zu erstellen:

public void methodA() throws SomeException {
    try {
        methodB();
    } catch (SomeException e) {
        // Protokollierung oder andere Aktionen
        // Die gleiche Ausnahme nach oben weitergeben
        throw e;
    }
}

public void methodB() throws SomeException {
    // Code, der SomeException auslösen kann
    throw new SomeException("Fehler in MethodB");
}

class SomeException extends Exception {
    public SomeException(String message) {
        super(message);
    }
}