⊗jsSpExcJSE 149 of 294 menu

JavaScript'te JSON ile İstisna Örneği

Dışarıdan bize bir yerden bir ürünle ilgili JSON geldiğini varsayalım:

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

JSON.parse metodunun, JSON geçersiz olduğunda bir istisna fırlatacağını zaten biliyorsunuz. Bu istisnayı yakalayalım:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // istisnaya bir şekilde tepki veriyoruz }

Ancak, JSON'un kendi başına geçerli olduğu ama ihtiyacımız olan alanları içermediği durumlar olabilir, örneğin fiyat alanı yok:

let json = '{"product": "apple", "amount": 5}'; // fiyat yok

Diyelim ki bunun da istisnai bir durum olduğunu söylüyoruz ve böyle bir durumda kendi kullanıcı tanımlı istisnamızı fırlatacağız:

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: 'ürün için fiyat veya miktar bilgisi eksik' }; } } catch (error) { // istisnaya bir şekilde tepki veriyoruz }

Artık catch bloğu iki tür istisna alacak: ya JSON tamamen geçersiz olacak ve SyntaxError türünde bir istisna oluşacak, ya da JSON geçerli ancak ihtiyacımız olan alanları içermiyor olacak ve bu durumda ProductCostError türünde bir istisna oluşacak.

catch bloğunda bu istisna türlerini yakalayalım:

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: 'ürün için fiyat veya miktar bilgisi eksik' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Geçersiz ürün JSON formatı'); } else if (error.name == 'ProductCostError') { alert('Üründe fiyat veya miktar bilgisi eksik'); } }

Size şu formatta bir JSON geldiğini varsayalım:

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

Bu JSON'u ayrıştırırken genel geçerlilik kontrolünden geçirin ve ayrıştırmadan sonra sonuçta bir dizi elde edildiğini, başka bir şey olmadığını kontrol edin. Eğer sonuç bir dizi değilse - bir istisna fırlatın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet