6.4 জাভাস্ক্রিপ্টের এরর কিভাবে থ্রোও করব

 

ট্রাই-ক্যাচ ব্লক নিয়ে কাজ করতে হলে প্রথমে এরর থ্রো করা শিখতে হবে। জাভাস্ক্রিপ্টে কিভাবে এরর থ্রো করতে হয় এটা নিয়ে আলোচনার আগে আমাদের বোঝা উচিত যে এখানে ‘এরর থ্রো’ করা বলতে আসলে কি বোঝানো হচ্ছে। কোনো প্রোগ্রামিং ল্যাংগুয়েজ যখন এমন একটি কিছুর মুখোমুখি হয় যেটাকে সে আর প্রসেস করতে পারছেনা, তখন ল্যংগুয়েজ-টি আমাদের-কে একটি ‘এরর’ পাঠিয়ে জানান দেয়। এরর থ্রো করা বলতে আসলে আমরা এই ব্যাপারটিকেই বুঝি। সাধারণত এরর থ্রো করার এই কাজটি ইঞ্জিনকে করতে হয়। কিন্তু আমরা ডেভেলপার-রাও কিন্তু চাইলে নিজেদের ইচ্ছেমতো এরর বানিয়ে সেটিকে থ্রো করতে পারি। ট্রাই-ক্যাচ-ফাইনালি ব্লক নিয়ে কাজ করার সময় আমরা নিজ থেকে এরর থ্রো করে ক্যাচ ব্লকে সেটা ধরতে পারি। এই কাজটি করার জন্য জাভাস্ক্রিপ্ট আমাদের “throw” স্টেটমেন্ট দিয়েছে।
এবার একটি সহজ উদাহরণ দেখা যাকঃ

var input = 25;
try {
   if (input < 10) {
     throw 'too small!';
   } else if (input > 20) {
     throw 'too big!';
   } else {
     console.log('Input was ' + input);
   }
} catch (error) {
   console.log('Input was ' + error);
} finally {
   console.log('Inside finally block!')
}

// Output: Input was too big!
// Inside finally block!

 

এখানে ট্রাই ব্লকে ইফ এলস স্টেটমেন্টের সাহায্যে দেখা হচ্ছে যে input এর মানটি ১০ এর চেয়ে ছোট কিনা। ছোট হলে too small লিখে একটি স্ট্রিং থ্রো করা হয়েছে এবং মান ২০ এর চেয়ে বেশি হলে too big লিখে একটি স্ট্রিং থ্রো করা হয়েছে। এখন প্রশ্ন হলো এই থ্রো করা স্ট্রিং দিয়ে কি লাভ আমাদের। এখানেই আসে ক্যাচ ব্লকের কাজ। থ্রো করার পরবর্তীতে ক্যাচ ব্লকে এসে ওই স্ট্রিং গুলো একেকটা এরর অবজেক্ট হিসেবে ধরা দিচ্ছে। এই error টিই কিন্তু আমাদের ট্রাই ব্লক থেকে থ্রো করা হয়েছিলো। অর্থাৎ থ্রো স্টেটমেন্ট ব্যবহার করার কারনে নতুন একটি এরর অবজেক্ট তৈরি হয়েছে।

এখানে লক্ষনীয় ব্যপারটি হলো জাভাস্ক্রিপ্ট ইঞ্জিন কিছু না বলা সত্ত্বেও আমরা ডেভেলপার-রা আমাদের প্রোগ্রামের প্রয়োজন অনুযায়ী এরর বানিয়ে থ্রো করলাম এবং এরর পাওয়া গেলে প্রোগ্রাম কি আচরণ করবে সেই ব্যবস্থা আগে থেকেই করে রাখলাম। এই প্রোগ্রামটি রান করলে যে এরর টি কনসোলে প্রিন্ট হবে সেটি হলো too big কারণ input এর মান এখানে ২০ এর চেয়ে বড়। এবং সবশেষে কনসোলে ফাইনালি ব্লকের লেখাটি প্রিন্ট হবে।
আশা করছি ট্রাই-ক্যাচ-ফাইনালি ব্লক নিয়ে সবার এখন ভালো ধারনা হয়েছে এবং এখন থেকে আমরা  সবাই জাভাস্ক্রিপ্টে যেকোনো ধরনের এরর হ্যান্ডেল করে ফেলতে পারবো।

 

  • Error Handling Examples
  • Error Handling Practices
  • Error Handling Interview Questions