Sobes.tech
Middle

Tekshiriladigan istisnolarni qayta ishlashning qanday usullari mavjud?

sobes.tech AI

AIdan javob

  • try-catch blokidan foydalanish: bu xatolikni ushlash va uni qayta ishlash imkonini beradi, bu esa dastur to‘xtab qolishini oldini oladi.
  • Metod xatolikni tashlashini e’lon qilish uchun, metod imzosida throws so‘zini ishlatish: bu javobgarlikni chaqiruvchiga o‘tkazadi.
  • Tekshiriladigan xatolikni tekshirilmagan xatolik bilan o‘ram qilish: bu xatolikni aniq ishlov bermasdan uzatishga imkon beradi, lekin haqiqiy muammoni yashirishi mumkin.

try-catchdan foydalanish misoli:

// Tekshiriladigan xatolikni ishlash uchun try-catch misoli
try {
    // Tekshiriladigan xatolikni chaqirishi mumkin bo‘lgan kod (masalan, IOException)
    FileReader file = new FileReader("my_file.txt");
    // Fayl bilan ishlash...
} catch (IOException e) {
    // IOException bilan ishlash
    e.printStackTrace(); // Xatolikni tahlil qilish uchun chaqiruvlar stekini chiqarish
    System.err.println("Fayl bilan ishlashda xato: " + e.getMessage());
}

throwsdan foydalanish misoli:

// Method imzosida `throws` ishlatish misoli
public void readFile(String fileName) throws IOException {
    FileReader file = new FileReader(fileName);
    // Fayl bilan ishlash...
}

// Chaqiruvchi kod IOException ni ishlov berishi yoki o‘zining imzosida e’lon qilishi kerak
public void processFile(String filePath) {
    try {
        readFile(filePath);
    } catch (IOException e) {
        System.err.println("Faylni o‘qishda xato: " + e.getMessage());
    }
}

Tekshiriladigan xatolikni tekshirilmagan xatolik bilan o‘ram qilish misoli:

// Tekshiriladigan xatolikni tekshirilmagan xatolik bilan o‘ram qilish
public void unsafeOperation() {
    try {
        // Tekshiriladigan xatolikni chaqirishi mumkin bo‘lgan kod
        throw new IOException("Misol uchun IOException")
    } catch (IOException e) {
        // Tekshiriladigan xatolikni tekshirilmagan xatolikga aylantirish
        throw new RuntimeException("Operatsiyada xato topildi", e);
    }
}