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);
}
}