⊗jsSpExcJSE 149 of 294 menu

Пример за исклучок со JSON во JavaScript

Нека до нас однекаде од надворешниот свет доаѓа JSON со производ:

let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount);

Веќе знаете дека методот JSON.parse ќе фрла исклучок, ако JSON е неточен. Ајде да го фатиме овој исклучок:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // некако реагираме на исклучокот }

Сепак, може да биде така што самиот JSON е точен, но не ги содржи потребните полиња, на пример, нема поле со цена:

let json = '{"product": "apple", "amount": 5}'; // нема цена

Ајде да кажеме дека ова е исто така исклучителна ситуација и во таков случај ќе фрламе сопствен кориснички исклучок:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'отсутствува цена или количина на производот' }; } } catch (error) { // некако реагираме на исклучокот }

Сега блокот catch ќе прима два типа на исклучоци: или JSON е воопшто неточен, и тогаш ќе има исклучок од тип SyntaxError, или JSON е точен, но не ги содржи потребните полиња, и тогаш ќе има исклучок од тип ProductCostError.

Ајде во блокот catch да ги фаќаме овие типови на исклучоци:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'отсутствува цена или количина на производот' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Неточен JSON на производот'); } else if (error.name == 'ProductCostError') { alert('На производот му недостасува цена или количина'); } }

Нека до вас доаѓа JSON од следниот вид:

let json = `[ { "name": "user1", "age": 25, "salary": 1000 }, { "name": "user2", "age": 26, "salary": 2000 }, { "name": "user3", "age": 27, "salary": 3000 } ]`;

Проверете го овој JSON за општа точност при парсирање, а по парсирањето проверете дали во резултат се добива низа, а не нешто друго. Ако во резултат се добива не низа - фрлете исклучок.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј