⊗jsSpExcJSE 149 of 294 menu

Ví dụ về Ngoại lệ với JSON trong JavaScript

Giả sử có một JSON sản phẩm được gửi đến từ bên ngoài:

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

Bạn đã biết rằng phương thức JSON.parse sẽ ném ra một ngoại lệ nếu JSON không hợp lệ. Hãy bắt ngoại lệ đó:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // xử lý ngoại lệ theo cách nào đó }

Tuy nhiên, có thể xảy ra trường hợp bản thân JSON hợp lệ nhưng không chứa các trường chúng ta cần, ví dụ, thiếu trường giá:

let json = '{"product": "apple", "amount": 5}'; // không có giá

Hãy coi đây cũng là một tình huống ngoại lệ và trong trường hợp như vậy, chúng ta sẽ ném ra một ngoại lệ tùy chỉnh của riêng mình:

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: 'thiếu giá hoặc số lượng sản phẩm' }; } } catch (error) { // xử lý ngoại lệ theo cách nào đó }

Bây giờ khối catch sẽ nhận được hai loại ngoại lệ: hoặc là JSON hoàn toàn không hợp lệ, và khi đó sẽ là ngoại lệ loại SyntaxError, hoặc JSON hợp lệ nhưng không chứa các trường chúng ta cần, và khi đó sẽ là ngoại lệ loại ProductCostError.

Hãy bắt các loại ngoại lệ này trong khối 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: 'thiếu giá hoặc số lượng sản phẩm' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('JSON sản phẩm không hợp lệ'); } else if (error.name == 'ProductCostError') { alert('Sản phẩm thiếu giá hoặc số lượng'); } }

Giả sử bạn nhận được JSON có dạng như sau:

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

Hãy kiểm tra JSON này về tính hợp lệ chung khi phân tích cú pháp, và sau khi phân tích, hãy kiểm tra xem kết quả có phải là một mảng hay không, hay là một cái gì đó khác. Nếu kết quả không phải là một mảng - hãy ném ra một ngoại lệ.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối