⊗jsSpExcAT 144 of 294 menu

JavaScriptda istisno turlaridan foydalanish

Faraz qilaylik, bizda JSON formatidagi ma'lumotlar massivini parametr sifatida qabul qiladigan va ushbu massivning har bir elementini mahalliy saqlashga yozadigan funksiya mavjud:

function saveData(json) { let arr = JSON.parse(json); for (let i = 0; i < arr.length; i++) { localStorage.setItem(i, arr[i]); } }

Ushbu funksiyada istisno holati ikki joyda yuzaga kelishi mumkin: JSONni tahlil qilishda va ma'lumotlarni mahalliy saqlashga saqlashga urinishda.

Faraz qilaylik, masalan, xatolarni qayta ishlash sifatida biz muammolar haqida ma'lum bir xabarni chiqarishga qaror qildik:

try { saveData('{1,2,3,4,5}'); } catch (error) { alert('qandaydir muammolar'); }

Bizning xabarmiz, bu, albatta, yaxshi, lekin u yuzaga kelgan muammolarni hech qanday ajratmaydi. Yanada mantiqiy bo'lar edi, qaysi aniq muammo yuzaga kelgani haqida xabar berish.

Buning uchun yuzaga kelgan xatolarni nomi bo'yicha farqlaymiz:

try { saveData('{1,2,3,4,5}'); } catch (error) { if (error.name == 'QuotaExceededError') { alert('saqlashda joy qolmadi'); } if (error.name == 'SyntaxError') { alert('noto‘g‘ri JSON'); } }

Mening saveData funksiyam kodini nusxalang, va keyin mening kodimga qaramay, men tasvirlagan xatolarni qayta ishlashni amalga oshiring.

Maxsus ravishda navbat bilan saveData funksiyasida yuzaga kelishi mumkin bo'lgan istisno holatlarini yarating.

idenuzluzcro