⊗jsSpExcJSE 149 of 294 menu

Contoh Pengecualian dengan JSON dalam JavaScript

Misalkan kepada kita dari suatu tempat di dunia luar datang JSON dengan produk:

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

Anda sudah tahu bahwa metode JSON.parse akan melemparkan pengecualian jika JSON tidak benar. Mari kita tangkap pengecualian ini:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // merespons pengecualian dengan cara tertentu }

Namun, bisa jadi JSON itu sendiri benar, tetapi tidak mengandung field yang kita butuhkan, misalnya, tidak ada field harga:

let json = '{"product": "apple", "amount": 5}'; // tidak ada harga

Mari kita katakan bahwa ini juga merupakan situasi pengecualian dan dalam kasus seperti itu kita akan melemparkan pengecualian pengguna kita sendiri:

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: 'harga atau jumlah produk tidak ada' }; } } catch (error) { // merespons pengecualian dengan cara tertentu }

Sekarang blok catch akan menerima dua tipe pengecualian: baik JSON secara umum tidak benar, dan kemudian akan ada pengecualian tipe SyntaxError, atau JSON benar, tetapi tidak mengandung field yang kita butuhkan, dan kemudian akan ada pengecualian tipe ProductCostError.

Mari kita dalam blok catch menangkap tipe-tipe pengecualian ini:

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: 'harga atau jumlah produk tidak ada' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('JSON produk tidak benar'); } else if (error.name == 'ProductCostError') { alert('Produk tidak memiliki harga atau jumlah'); } }

Misalkan kepada Anda datang JSON dengan bentuk seperti ini:

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

Periksa JSON ini untuk kebenaran umum saat parsing, dan setelah parsing periksa bahwa hasilnya adalah sebuah array, bukan sesuatu yang lain. Jika hasilnya bukan array - lemparkan pengecualian.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak