Sobes.tech
Junior

Ինչպե՞ս կբացառեիք արտահայտությունները վերևում զանգերի տախտակամածում:

sobes.tech AI

Պատասխան AI-ից

Իմ օգտագործում եմ throw բանալի բառը՝ նոր արտահայտում կամ վերարտադրելու համար:

public void method1() throws CustomException {
    try {
        // Որոշ կոդ, որը կարող է արտածել AnotherException
        method2();
    } catch (AnotherException e) {
        // Արդեն բռնած AnotherException-ը
        // Փակել այն CustomException-ի մեջ և վեր բարձրացնել
        throw new CustomException("Method2-ում սխալ: " + e.getMessage(), e);
    }
}

public void method2() throws AnotherException {
    // Որոշ կոդ, որը կարող է արտածել արտահայտություն
    throw new AnotherException("Ինչ-որ բան սխալ է եղել Method2-ում");
}

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

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

Կամ, եթե պարզապես ուզում եք վերարտադրել բռնած արտահայտությունը առանց նոր ստեղծելու.

public void methodA() throws SomeException {
    try {
        methodB();
    } catch (SomeException e) {
        // Գրանցում կամ այլ գործողություններ
        // Դարձնել նույն արտահայտությունը վերև
        throw e;
    }
}

public void methodB() throws SomeException {
    // Կոդ, որը կարող է արտածել SomeException
    throw new SomeException("Սխալ MethodB-ում");
}

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