6.1 জাভাস্ক্রিপ্টের এরর হ্যান্ডেল

 

‘এরর’ বলতে আসলে বোঝায় আমাদের প্রোগ্রামের এমন কিছু ভুল যেগুলোর কারনে প্রোগ্রামটি ঠিকভাবে চলতে পারছেনা। জাভাস্ক্রিপ্টে সাধারনত তিন ধরনের এরর হয়ে থাকে। আসুন এগুলো সম্পর্কে প্রথমে কিছু জেনে নেয়া যাকঃ

১) সিনট্যাক্স এররঃ

জাভাস্ক্রিপ্টে সিনট্যাক্সজনিত কোনো ভুলের কারনে যখন কোড পার্স করা সম্ভব হয় না তখন এটিকে  সিনট্যাক্স এরর(Syntax Error) বলে। সিনট্যাক্স এরর এর অপর নাম পার্সিং এরর। এই এরর গুলো ইন্টারপ্রেটার যখন ইন্টারপ্রেট করে অর্থাৎ ‘ইন্টারপ্রেট টাইম’ এই ধরা পড়ে যায়।

window.print(;

উপরের লাইনটি সিনট্যাক্স এরর এর একটি উদাহরন। এখানে একটি ব্র্যাকেট বাদ পড়ায় ইন্টারপ্রেটার একে পার্স করতে পারবেনা এবং এরর দেখাবে।

২) রানটাইম এররঃ

রানটাইম এরর প্রথমেই ধরা পড়েনা কারন এটি ঘটে রানটাইমে। অর্থাৎ ইন্টারপ্রেটেশন এর পর প্রোগ্রাম রান করা অবস্থায় এর মুখোমুখি হতে পারি আমরা। রানটাইম এরর কে এক্সেপশন এরর ও বলা হয়।

window.printme();

এই লাইন টিতে সিনট্যাক্স এর কোনো ভুল না থাকলেও এখানে এমন একটি ফাংশন কে কল করা হয়েছে যেটার কোনো অস্তিত্বই নেই। আমরা কিন্তু কোথাও printme ফাংশন টা বানাইনি এবং জাভাস্ক্রিপ্টও এই নামের কোনো ফাংশন আমাদের দেয়না। তাই ইন্টারপ্রেট হয়ে গেলেও প্রোগ্রামটা এক্সিকিউট হওয়ার সময় জাভাস্ক্রিপ্ট আমাদের রানটাইম এরর দিবে।

৩) লজিকাল এররঃ

আমরা প্রোগ্রামিং এর সময় যদি কোডে ভুলভাল লজিক লেখি তাহলে পরবর্তীতে যেসব পরিস্থিতিতে পড়তে পারি সেগুলোই লজিকাল এরর। জাভাস্ক্রিপ্ট এর পক্ষে এই এরর গুলো আমাদেরকে জানিয়ে দেয়া সম্ভব হয়না। তাই এগুলো শনাক্ত করা ক্ষেত্রবিশেষে বেশ কঠিন।

একটা ভালো প্রোগ্রাম লেখার জন্য এরর গুলো ঠিকভাবে সামলানো অর্থাৎ ‘এরর হ্যান্ডেলিং’ অনেক গুরুত্বপূর্ন।এই লেখার পরবর্তী অংশে জাভাস্ক্রিপ্ট-এ এরর হ্যান্ডেলিং কিভাবে করা যায় সেটি নিয়ে বিস্তারিত কথা হবে।

উদাহরন
  • উদাহরন ১ঃ
JSON.parse("<html></html>");

উপরের কোডটির আউটপুট কি আসবে?

SyntaxError: Unexpected token  আসছে, কারণ আমরা যখন JSON parse করি তখন একটি valid JSON ডাটা দিতে হয়, html কোন valid JSON formate না।

  • উদাহরন ২ঃ
const value = 10;
value = 20;

আমরা অনেক সময় Constant ভ্যারিয়েবলের মধ্যে একাধিকবার ভ্যালু এসাইন করি ,যার জন্য TypeError দেখায়,আমরা Constant ভ্যারিয়েবলে একবার ভ্যালু এসাইন করতে পারি যদি একই ভ্যারিয়েবলে আবার ভ্যালু এসাইন করতে হয়,সেক্ষেত্রে আমরা const এর পরিবর্তে let ব্যাবহার করবো।

  • উদাহরন ৩ঃ
const case = 20;

উপরের লাইনটি সিনট্যাক্স এরর এর একটি উদাহরণ। এখানে case হচ্ছে JavaScript এর নিজস্ব রিজার্ভ ওয়ার্ড,আমরা কখনোই রিজার্ভ ওয়ার্ডকে ভ্যারিয়েবল হিসেবে ব্যাবহার করতে পারবো না।

  • উদাহরন ৪ঃ
while(1){
   console.log("object");
}

এখানে লজিক্যাল এরর হয়েছে , লুপটি অনন্তকালের জন্য চলবে কারণ এই লুপটি কখনই false হবে না।

এসো নিজে করি
  • ধরুণ আমাদের একটি constant default নামে variable আছে,
    const default = 10;

    এটি কি valid ?

  • JSON.parse({}); // valid or not ?