6.2 If else কন্ডিশন দিয়ে এরর হ্যান্ডেলিং
জাভাস্ক্রিপ্ট কোডের এরর হ্যান্ডেল করার একটি উপায় হলো কন্ডিশনাল স্টেটমেন্ট অর্থাৎ ইফ এলস ব্যবহার করা। ইফ এলস স্টেটমেন্ট দিয়ে আমরা সাধারণত বিভিন্ন ধরনের শর্ত চেক করি এবং সেই অনুযায়ী প্রোগ্রাম-কে নির্দেশনা দেই।এক্ষেত্রে একটু চিন্তা করলেই বোঝা যাবে যে আমরা যদি আমাদের একটি নির্দিষ্ট ব্লকের কোডের জন্য কি ধরনের এরর আসতে পারে সেটি আগে থেকে ধারনা করতে পারি তাহলে সেই অনুযায়ী কন্ডিশন চেক করে সেটি হ্যান্ডেল করে ফেলতে পারবো। একটি উদাহরণ দেখে সেটি ব্যাখ্যা করা যাক।
এখানে convertToInteger ফাংশন টির কাজ হলো যেকোনো টাইপের ইনপুট নিয়ে সেটিকে ইন্টেজার এ রূপান্তর করার চেষ্টা করা। কিন্তু Number.parseInt() ফাংশন কিন্তু সব ধরনের ডাটা-কে ইন্টেজারে রূপান্তর করতে পারেনা। যেসব ক্ষেত্রে পারেনা সেসব ক্ষেত্রে NaN রিটার্ন করে। অর্থাৎ জাভাস্ক্রিপ্ট কিন্তু এখানে আমাদের জন্য কোনো এরর থ্রো করছেনা বরং অন্য একটি ডাটা টাইপ সেইভ করে রাখছে যেটি আমাদের কাম্য না। এই পরিস্থিতিতে আমাদের যেহেতু আমাদের জানা আছে যে এধরনের এরর হতে পারে, আমরা এখানে কন্ডিশনাল স্টেটমেন্ট ব্যবহার করতে পারি। এই কাজটিই উপরে করা হয়েছে যেখানে ইফ স্টেটমেন্টে রেজাল্টের ভ্যালু চেক করে একটি এরর মেসেজ রিটার্ন করা হচ্ছে।
এভাবেই আমরা ইফ এলস স্টেটমেন্টের সাহায্যে এরর হ্যান্ডেল করে ফেলতে পারি। কিন্তু আমাদের মাথায় রাখা প্রয়োজন যে কন্ডিশনাল স্টেটমেন্টগুলো এরর হ্যান্ডেল করার জন্য বানানো হয়নি। এরর হ্যান্ডেল করার জন্য জাভাস্ক্রিপ্ট আমাদের এর চেয়ে আরো ভালো উপায় দিয়েছে যেটি নিয়ে লেখার পরবর্তী অংশে আলোচনা হবে।
- উদাহরন ১ঃ
function add(a, b) {return a + b;}function addition(a, b) {if (typeof a !== “number” || typeof b !== “number”) {return “This data not an integer”;} else {return a + b;}}console.log(add(“3”, “2”)); // 32console.log(addition(“3”, “2”)); // This data not an integerconsole.log(addition(3, 2)); // 5
- উদাহরন ২ঃ
function convertToInt(num) {const result = Number.parseInt(num);if (!result) {return “Please provide a valid value”;} else {return result;}}console.log(convertToInt(“45.54434sd”)); // 45console.log(convertToInt(“sdsadasd45.54434sd”)); // Please provide a valid value
- উদাহরন ৩ঃ
async function getData() {const response = await fetch(“https://jsonplaceholder.typicode.com/todos/1”);if (response.status === 200) {const result = await response.json();console.log(result);} else {console.log(“Failed to load Data”);}}getData();
- উদাহরন ৪ঃ
async function getData() {const response = await fetch(“https://jsonplaceholder.typicode.com/todos/1”);if (response.status === 200) {const result = await response.json();const id = result.id;const albumsRes = await fetch(`https://jsonplaceholder.typicode.com/albums?userId=${id}`);if (albumsRes.status === 200) {const albums = await albumsRes.json();console.log(albums);} else {console.log(“Failed to load Data”);}} else {console.log(“Failed to load Data”);}}getData();
- একটি ফাংশন বানান, যা দুইটি পজিটিভ সংখ্যা প্যারামিটার হিসেবে নেয় এবং তাদের যোগফল return করে।
- একটি asynchronous ফাংশনে API কল করে ,যদি status Code ২০০ হয় তবে ডাটা কনসোলে দেখান।
API Endpoint : https://jsonplaceholder.typicode.com/posts