⊗jsSpExcThr 145 of 294 menu

জাভাস্ক্রিপ্টে এক্সেপশন নিক্ষেপ

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

তবে, আপনার প্রকল্পে অন্যান্য পরিস্থিতিও থাকতে পারে যেগুলো আপনার জন্য এক্সেপশনাল, কিন্তু জাভাস্ক্রিপ্টের জন্য নয়। সেই ক্ষেত্রে আমরা আমাদের নিজস্ব, কাস্টম এক্সেপশন তৈরি এবং নিক্ষেপ করতে পারি।

এর জন্য প্রয়োজনীয় সিনট্যাক্স জেনে নেওয়া যাক। শুরুতে, new Error কমান্ড ব্যবহার করে একটি এক্সেপশন তৈরি করতে হবে, প্যারামিটার হিসেবে এক্সেপশনের টেক্সট পাস করে:

new Error('এক্সেপশনের টেক্সট');

তারপর throw কমান্ড ব্যবহার করে এই এক্সেপশনটি নিক্ষেপ করতে হবে:

throw new Error('এক্সেপশনের টেক্সট');

এক্সেপশন নিক্ষেপ করলে জাভাস্ক্রিপ্ট মনে করে যে একটি এক্সেপশনাল পরিস্থিতি ঘটেছে। এর মানে হল যে, try-catch কনস্ট্রাকশন ব্যবহার করে এই ধরনের এক্সেপশন ধরা যায় এবং প্রয়োজনীয়ভাবে প্রক্রিয়া করা যায়।

চলুন একটি উদাহরণ দেখি, কিভাবে এটি ব্যবহার করা যায়। ধরুন আমাদের একটি ফাংশন আছে যা একটি সংখ্যাকে অন্য একটি সংখ্যা দ্বারা ভাগ করে:

function div(a, b) { return a / b; }

আসুন আমরা বিবেচনা করি যে, শূন্য দ্বারা ভাগ করা নিষিদ্ধ এবং এটি করার চেষ্টা করলে একটি এক্সেপশনাল পরিস্থিতি তৈরি হওয়া উচিত। এর জন্য ফাংশনের ভিতরে চেক করব যে, 0 দ্বারা ভাগ করার চেষ্টা হচ্ছে কিনা। যদি না হয় - ভাগ করব, আর যদি হয় - তাহলে একটি এক্সেপশন নিক্ষেপ করব:

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('শূন্য দ্বারা ভাগের ত্রুটি'); } }

চলুন প্রথমে শুধু 0 দ্বারা ভাগ করার চেষ্টা করি, এক্সেপশন ক্যাচ না করে:

alert( div(3, 0) );

এই ক্ষেত্রে স্ক্রিপ্টের এক্সিকিউশন বন্ধ হয়ে যাবে এবং কনসোলে 'শূন্য দ্বারা ভাগের ত্রুটি' টেক্সট সহ একটি ত্রুটি দেখা দেবে (পরীক্ষা করুন)। চলুন এখন আমাদের ত্রুটিটি ক্যাচ করি এবং এটিকে কোনোভাবে প্রক্রিয়া করি:

try { alert( div(3, 0) ); } catch (error) { alert('আপনি শূন্য দ্বারা ভাগ করার চেষ্টা করছেন, যা নিষিদ্ধ'); }

জাভাস্ক্রিপ্টে ঋণাত্মক সংখ্যার বর্গমূল নেওয়ার চেষ্টা এক্সেপশন নিক্ষেপের কারণ হয় না:

let result = Math.sqrt(-1); console.log(result); // NaN আউটপুট দেবে

আপনার নিজের একটি ফাংশন লিখুন, যা একটি সংখ্যার বর্গমূল নেবে এবং একই সাথে একটি এক্সেপশন নিক্ষেপ করবে, যদি ঋণাত্মক সংখ্যা থেকে বর্গমূল নেওয়ার চেষ্টা করা হয়।

danlcskkuz