Middle
Java'da istisno mexanizmi haqida gapiring.
sobes.tech AI
AIdan javob
Java dasturida istisno mexanizmi, dastur bajarilishi davomida yuzaga keladigan xatoliklar va boshqa istisno holatlarni boshqarish uchun ishlatiladi.
Asosiy elementlar:
- Istisno (Exception): Dastur normal bajarilish jarayonini to'xtatadigan voqeani ifodalaydigan obyekt.
try,catch,finallybloklari: Istisnolarni boshqarish uchun ishlatiladi.try: Istisno yuzaga kelishi mumkin bo'lgan kod bloki.catch:tryblokida ma'lum bir turdagi istisno yuzaga kelganda bajariladigan kod bloki.finally: Har doim bajariladigan kod bloki, istisno yuzaga kelgan yoki kelmagan bo'lsa ham. Resurslarni ozod qilish uchun ishlatiladi.
throwkalit so'zi: Aniq istisno yaratish va tashlash uchun ishlatiladi.throwskalit so'zi: Metod imzoda ishlatiladi va metod tashlashi mumkin bo'lgan istisno turlarini e'lon qiladi.
Java'da istisno hierarxiyasi:
Throwable: Barcha istisno va xatolar uchun asosiy sinf.Error: Dastur odatda tiklay olmaydigan jiddiy muammolarni ifodalaydi (masalan,OutOfMemoryError).Exception: Dastur tomonidan ushlanadigan va boshqariladigan istisnalarni ifodalaydi.RuntimeException(Unchecked Exceptions): Aniq ishlov berishni yoki e'lon qilishni talab qilmaydigan istisnalar (masalan,NullPointerException,ArrayIndexOutOfBoundsException).- Tekshirilgan istisnalar (Checked Exceptions):
try-catchbloki bilan boshqarilishi yokithrowsbilan e'lon qilinishi kerak bo'lgan istisnalar (masalan,IOException,FileNotFoundException).
Misol:
public class ExceptionExample {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println("Natija: " + result);
} catch (ArithmeticException e) {
// ArithmeticException ni boshqarish
System.err.println("Xato: Nolga bo'lish mumkin emas.");
System.err.println("Xato tafsilotlari: " + e.getMessage());
e.printStackTrace(); // chaqiruvlar stekini ko'rsatadi
} finally {
// Bu blok har doim bajariladi
System.out.println("Finally bloki bajarildi.");
}
}
public static int divide(int a, int b) {
// b = 0 bo'lsa, ArithmeticException yuzaga kelishi mumkin
return a / b;
}
}
throws misoli:
import java.io.FileReader;
import java.io.IOException;
public class ThrowsExample {
public static void readFile(String filename) throws IOException {
// IOException yuzaga kelishi mumkin
FileReader reader = new FileReader(filename);
// Fayl bilan ishlash
}
public static void main(String[] args) {
try {
readFile("mavjud_emas_fayl.txt");
} catch (IOException e) {
System.err.println("Faylni o'qishda xato: " + e.getMessage());
}
}
}