জাভাস্ক্রিপ্টে JSON এর সাথে একটি ব্যতিক্রমের উদাহরণ
ধরুন বাইরের বিশ্ব থেকে আমাদের কাছে একটি পণ্য সহ 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 এর সাধারণ সঠিকতা পরীক্ষা করুন, এবং পার্স করার পরে পরীক্ষা করুন যে ফলস্বরূপ একটি অ্যারে পাওয়া যায়, অন্য কিছু নয়। যদি ফলস্বরূপ একটি অ্যারে না পাওয়া যায় - একটি ব্যতিক্রম নিক্ষেপ করুন।