Sobes.tech
Junior

Kako biste bacili izuzetke više u steku poziva?

sobes.tech АИ

Одговор од АИ

Koristim ključnu reč throw da bih ponovo bacio ili kreirao novu izuzetak.

public void method1() throws CustomException {
    try {
        // Neki kod koji može da baci AnotherException
        method2();
    } catch (AnotherException e) {
        // Hvatanje AnotherException
        // Uključivanje u CustomException i podizanje dalje
        throw new CustomException("Greška u Method2: " + e.getMessage(), e);
    }
}

public void method2() throws AnotherException {
    // Neki kod koji može da baci izuzetak
    throw new AnotherException("Nešto je pošlo po zlu u Method2");
}

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

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

Ili, ako želite samo da prosledite uhvaćen izuzetak bez pravljenja novog:

public void methodA() throws SomeException {
    try {
        methodB();
    } catch (SomeException e) {
        // Logovanje ili druge radnje
        // Prosleđivanje istog izuzetka dalje
        throw e;
    }
}

public void methodB() throws SomeException {
    // Kod koji može da baci SomeException
    throw new SomeException("Greška u MethodB");
}

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