Middle
Tekshiriladigan istisnolarni qayta ishlashning qanday usullari mavjud?
sobes.tech AI
AIdan javob
try-catchblokidan 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
throwsso‘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);
}
}