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