⊗jsSpExcJSE 149 of 294 menu

Mfano wa Kutupa Isipokuwa na JSON katika JavaScript

Hebu tuchukulie kwamba kutoka mahali pengine katika ulimwengu wa nje kunakuja JSON na bidhaa:

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

Tayari unajua kuwa njia JSON.parse itatupa isipokuwa, ikiwa JSON sio sahihi. Wacha tuikamate isipokuwa hii:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // tutafanya jambo fulani kuhusu isipokuwa }

Hata hivyo, inawezekana kuwa JSON yenyewe ni sahihi, lakini haina sehemu tunazohitaji, kwa mfano, hakuna sehemu ya bei:

let json = '{"product": "apple", "amount": 5}'; // hakuna bei

Wacha tuseme kuwa hii pia ni hali ya isipokuwa na tutaweza katika kesi kama hii kutupa isipokuwa yetu wenyewe ya mtumiaji:

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: 'bei au kiasi cha bidhaa hakipo' }; } } catch (error) { // tutafanya jambo fulani kuhusu isipokuwa }

Sasa kipande catch kitapata aina mbili za isipokuwa: ama JSON kwa ujumla haikubaliki, na kisha kutakuwa na isipokuwa ya aina SyntaxError, au JSON ni sahihi, lakini haina sehemu tunazohitaji, na kisha kutakuwa na isipokuwa ya aina ProductCostError.

Wacha katika kipande catch tuwatee hizi aina za isipokuwa:

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: 'bei au kiasi cha bidhaa hakipo' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('JSON ya bidhaa sio sahihi'); } else if (error.name == 'ProductCostError') { alert('Bidhaa haina bei au kiasi'); } }

Hebu tuchukulie kwamba kwawe kunakuja JSON ya aina hii:

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

Kagua JSON hii kwa usahihi wa jumla wakati wa kuchambua, na baada ya kuchambua hakikisha kuwa matokeo yake ni safu (array), na si kitu kingine. Ikiwa matokeo yake sio safu - tupa isipokuwa.

enazptsvhu