⊗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-ը ընդհանուր ճիշտ լինելու համար վերլուծելիս, իսկ վերլուծությունից հետո ստուգեք, որ արդյունքում ստացվում է զանգված, այլ ոչ թե այլ ինչ-որ բան: Եթե արդյունքում ստացվում է ոչ թե զանգված - նետեք բացառություն:

csfruzhyby