কোনো প্রোগ্রামে বা Code-এর কোনো অংশে কিছু ভুল বা অপ্রত্যাশিত ঘটলে তা জানানোর জন্য এরর দারুণ কাজে লাগে।
এগুলো JavaScript অবজেক্ট।
এই অবজেক্টের প্রধান প্রপার্টি হলো message:
const error = new Error('Oops, something went wrong');
console.log(error.message);
// => "Oops, something went wrong"
throw সিনট্যাক্স ব্যবহার করে আপনি একটি এরর থ্রো করতে পারেন।
throw new Error('Oops');
কোনো এরর থ্রো হলে বর্তমান এক্সিকিউশন থেমে যায় এবং কল স্ট্যাকের প্রথম ক্যাচ ব্লকে গিয়ে আবার শুরু হয়।
try {
throw new Error('Oops');
} catch (error) {
console.log(error.message);
// => "Oops"
}
JavaScript-এর যেকোনো ক্লাসের মতোই, extends কিওয়ার্ড ব্যবহার করে সাবক্লাসগুলো Error থেকে ইনহেরিট করে কাস্টম এরর তৈরি করতে পারে।
instanceof সিনট্যাক্স পরীক্ষা করে যে ধরা পড়া এররটি Error-এর কোনো নির্দিষ্ট সাবক্লাসের ইনস্ট্যান্স কি না।
class CustomError extends Error {}
try {
// ... Code that may throw an error
} catch (error) {
if (error instanceof CustomError) {
console.log('The error thrown is an instance of the CustomError');
}
}
Error অবজেক্ট ছাড়াও আরও কিছু বিল্ট-ইন এরর অবজেক্ট আছে। এগুলো সম্পর্কে আরও জানতে পারেন এখানে।
বিল্ট-ইন এরর টাইপগুলোর একটিকে extends করা একটি ক্লাস তৈরি করেও আপনি নিজের কাস্টম এরর টাইপ ডিফাইন করতে পারেন।
class MyCustomError extends Error {}
throw সিনট্যাক্স সাধারণত একটি Error অবজেক্ট থ্রো করতে ব্যবহৃত হয়, তবে JavaScript নমনীয়, তাই এটি আপনাকে একটি string, একটি null বা যেকোনো প্রিমিটিভ টাইপ থ্রো করতে দেয়।
JavaScript-এ এটি স্ট্যান্ডার্ড নয়, তবে বেশিরভাগ JavaScript এনভায়রনমেন্ট Error অবজেক্টে একটি stack প্রপার্টি ইমপ্লিমেন্ট করে, যার সাহায্যে থ্রো হওয়া এররের স্ট্যাক ট্রেস পাওয়া যায়।