Middle
Խոսեք Java-ում արտակարգ իրավիճակների մեխանիզմի մասին։
sobes.tech AI
Պատասխան AI-ից
Java-յի սխալների մեխանիզմը օգտագործվում է սխալների և այլ արտակարգ իրավիճակների մշակման համար, որոնք առաջանում են ծրագրի գործարկման ժամանակ:
Սխալների մեխանիզմի հիմնական տարրերը՝
- Սխալ (Exception): Օբյեկտ, որը ներկայացնում է իրադարձություն, որը խանգարում է ծրագրի նորմալ կատարմանը:
try,catch,finallyբլոկներ: Օգտագործվում են սխալների մշակման համար:try: Կոդի բլոկ, որտեղ կարող է առաջանալ սխալ:catch: Կոդի բլոկ, որը կատարվում է, եթեtryբլոկում առաջանա որոշակի տեսակի սխալ:finally: Կոդի բլոկ, որը միշտ կատարվում է, անկախ նրանից, առաջացել է սխալ թե ոչ: Օգտագործվում է ռեսուրսների ազատման համար:
throwբանալի բառը: Օգտագործվում է սխալը բացահայտորեն ստեղծելու և նետելու համար:throwsբանալի բառը: Օգտագործվում է մեթոդի սինտաքսում՝ սխալների տեսակները հայտնելու համար, որոնք մեթոդը կարող է նետել:
Java-յի սխալների հիերարխիա՝
Throwable: Բազային դաս բոլոր սխալների և սխալների համար:Error: Խնդիրներ, որոնք լուրջ են և սովորաբար ծրագրին չեն կարողանում վերականգնել (օրինակ՝OutOfMemoryError):Exception: Սխալներ, որոնք ծրագրին կարող է բռնել և մշակել:RuntimeException(Unchecked Exceptions): Սխալներ, որոնք պահանջում են բացահայտ մշակում կամ հայտարարում մեթոդի սինտաքսում (օրինակ՝NullPointerException,ArrayIndexOutOfBoundsException):- Չեկված սխալներ (
Checked Exceptions): Սխալներ, որոնք պետք է կամ մշակելtry-catchբլոկով, կամ հայտարարելthrows-ով մեթոդի սինտաքսում (օրինակ՝IOException,FileNotFoundException):
Սխալների մշակման օրինակ՝
public class ExceptionExample {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println("Արդյունք: " + result);
} catch (ArithmeticException e) {
// Սխալը մշակել `ArithmeticException`
System.err.println("Սխալ: Բաժանում զրոյով թույլատրված չէ:");
System.err.println("Սխալի մանրամասները: " + e.getMessage());
e.printStackTrace(); // Զանգվածի տպում
} finally {
// Այս բլոկը միշտ կատարվում է
System.out.println("Finally բլոկը կատարվեց:");
}
}
public static int divide(int a, int b) {
// Կարող է նետել `ArithmeticException` եթե b = 0
return a / b;
}
}
throws-ի օգտագործման օրինակ՝
import java.io.FileReader;
import java.io.IOException;
public class ThrowsExample {
public static void readFile(String filename) throws IOException {
// Կարող է նետել `IOException`
FileReader reader = new FileReader(filename);
// Ավելին՝ ֆայլի հետ աշխատել
}
public static void main(String[] args) {
try {
readFile("չհասանելի_ֆայլ.txt");
} catch (IOException e) {
System.err.println("Սխալ ֆայլը կարդալիս: " + e.getMessage());
}
}
}