Istisnolarni boshqarish (dasturlash)
Istisnolarni generatsiya qilish
Download 23.37 Kb.
|
FAYLLAR (2)
- Bu sahifa navigatsiya:
- Istisno xolatning ma’lumotlar elementlaridan foydalanish
Istisnolarni generatsiya qilish
C++ o‘zi istisno xolatlarni yuzaga keltirmaydi. Ularni C++ ning throw operatoridan foydalangan dasturlar yuzaga keltiradi. Istisno yuzaga kelganda, throw operatoridagi Masalan fayl ochilishida dastur xato kelib chiqish shartlarini tekshirish va throw file_open_error() istisno xolatni yuzaga keltirish mumkin. Kutilmagan istisnolarni qayta ishlash Agar dasturda kuzda tutilmagan istisno xodisa yuz bersa standart istisnolarni qayta ishlovchi ishlatiladi. Kup xollarda bu standart qayta ishlovchi dastur bajarilishini tuxtatib kuyadi. Avval unexpected() funksiyasi chaqirilib, undan so‘ng ko‘zda tutilgan bo‘yicha terminate() funksiyasi ishga tushadi. Bu funksiya dasturni to‘xtatish uchun abort() funksiyasini chaqiradi. Dasturda maxsus qayta ishlovchidan foydalanish uchun set_unexpected va set_terminate funksiyasidan foydjalanish lozim. Bu funksiyalar prototiplari except.h sarlavxali faylda aniklangan. Bu funksiyalar void tipiga ega bo‘lib parametrsiz bo’ladi. Istisno xolatning ma’lumotlar elementlaridan foydalanish Yuqorida ko‘rib o‘tilgan misollarda dastur, catch operatordan foydalanib, qanday istisno xolat ro‘y berganini va ularga tegishli xolda javob berishini imkonini beradi. Masalan, file_open_error istisno xolatda dastur xatoni chaqiruvchi fayl nomini bilish lozim. Istisno xolatga tegishli shunday ma’lumotni saqlash uchun dastur istisno xolat sinfiga ma’lumotlar elementlarini qo‘shish. Agar keyinchalik dastur istisno xolatni yuzaga keltirsa, u ushbu ma’lumotni, quyida ko‘rsatilgandek, istisno xolatiga ishlov beruvchi funksiyaga o‘zgaruvchi sifatida uzatadi: throw file_open_error(source); throw file_read_error(344); Istisno xolatga ishlov berishda bu parametrlar sinfga tegishli o‘zgaruvchilarga o‘zlashtirilishi mumkin (konstruktorga o‘xshaydi). Masalan, sinfning tegishli o‘zgaruvchisiga xatoga yo‘l qo‘ygan faylni ismini o‘zlashtirish uchun quyidagi operatorlar file_open_error istisno xolatni o‘zgartiradi: class file_open_error { public: file_open_error(char *filename) { strcpy(file_open_error::filename, filename); } char filename[255] ; }; Download 23.37 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling