⊗jsSpExcAT 144 of 294 menu

Ужыванне тыпаў выключэнняў у JavaScript

Няхай у нас ёсць функцыя, параметрам якой прымаецца JSON з масівам даных і якая запісвае кожны элемент гэтага масіва ў лакальнае сховішча:

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

У дадзенай функцыі выключная сітуацыя можа ўзнікнуць у двух месцах: пры разборы JSON і пры спробе захавання даных у лакальнае сховішча.

Няхай, для прыкладу, у якасці апрацоўкі памылак мы вырашылі выводзіць нейкае паведамленне пра праблемы:

try { saveData('{1,2,3,4,5}'); } catch (error) { alert('нейкія праблемы'); }

Наша паведамленне, гэта, вядома, добра, але яно ніяк не дыферэнцыюе праблемы, што ўзніклі. Больш лагічна было б вывесці паведамленне пра тое, якая менавіта праблема ўзнікла.

Для гэтага адрознім узніклыя памылкі па імені:

try { saveData('{1,2,3,4,5}'); } catch (error) { if (error.name == 'QuotaExceededError') { alert('закончылася месца ў сховішчы'); } if (error.name == 'SyntaxError') { alert('някарэктны JSON'); } }

Скапіруйце код маёй функцыі saveData, а затым не падглядваючы ў мой код рэалізуйце апісаную мной апрацоўку памылак.

Спецыяльна па чарзе стварыце выключныя сітуацыі, якія могуць узнікнуць у функцыі saveData.

idplruesen