Sobes.tech
Junior

Kā jūs izmetu izņēmumus augstāk par izsaukšanas steku?

sobes.tech AI

Atbilde no AI

Es izmantoju atslēgvārdu throw, lai atkārtoti mestu vai izveidotu jaunu izņēmumu.

public void method1() throws CustomException {
    try {
        // Kāds kods, kas var izraisīt AnotherException
        method2();
    } catch (AnotherException e) {
        // Noķeram AnotherException
        // To ietveram CustomException un paceļam augšā
        throw new CustomException("Kļūda Method2: " + e.getMessage(), e);
    }
}

public void method2() throws AnotherException {
    // Kāds kods, kas var izraisīt izņēmumu
    throw new AnotherException("Kas notika nepareizi Method2");
}

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

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

Vai arī, ja vēlaties vienkārši pārsūtīt noķerto izņēmumu bez jauna izveides:

public void methodA() throws SomeException {
    try {
        methodB();
    } catch (SomeException e) {
        // Žurnāls vai citas darbības
        // Pārsūtām to pašu izņēmumu uz augšu
        throw e;
    }
}

public void methodB() throws SomeException {
    // Kods, kas var izraisīt SomeException
    throw new SomeException("Kļūda MethodB");
}

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