JavaScript try catch ব্লকগুলো এরর হ্যান্ডলার। "try" ব্লকটি সেই কোডটি ধারণ করে যা আপনি টেস্ট করতে চান। "catch" ব্লকটি সেই কোড ধারণ করে যা রান করবে যদি আপনার "try" ব্লকের কোড সফলভাবে এক্সিকিউট না পারে।
যখন ডেভেলপাররা তাদের প্রোগ্রাম টেস্ট করেন, তখন এরর হ্যান্ডল করার জন্য কোড লিখা একটি সাধারণ অভ্যাস। এটি প্রোগ্রাম ক্র্যাশ হওয়ার চেয়ে বেশি গ্রেসফুল (graceful), যা তাদের প্রোগ্রামে একটি প্রোগ্রামিং এরর দেখাবে। উদাহরণস্বরূপ, আপনি ব্যবহারকারীকে "Please try again later" মেসেজ দেখাতে চাইতে পারেন একটি লম্বা এরর লগের পরিবর্তে।
এখানেই try/catch ব্লকগুলো কাজে আসে। Try/catch ব্লকগুলো আপনাকে গ্রেসফুলি এরর হ্যান্ডেল করতে দেয় যাতে কোডিং সমস্যা পুরো প্রোগ্রামকে ক্র্যাশ না করে। এই গাইডে, আমরা try/catch ব্লক কীভাবে ব্যবহার করতে হয় এবং সেগুলো কীভাবে উপযোগী তা প্রদর্শন করব।
এরর হ্যান্ডলিং রিফ্রেশার
প্রতিটি ডেভেলপার তাদের কোডে ভুল করে কারণ একটি প্রোগ্রামের ব্রেক হওয়ার অনেক উপায় থাকে।
জাভাস্ক্রিপ্টে একটি এরর এনকাউন্টার হলে, প্রোগ্রাম সাধারণত থেমে যায় এবং কনসোলে এরর প্রিন্ট করে। এটি উপযোগী কারণ আপনি কী ভুল হয়েছে তা দেখতে পারেন, কিন্তু যারা এররটি এনকাউন্টার করে তারা এটি বুঝতে পারবে না।
এসেই আপনার কোডে এরর হ্যান্ডলিং প্রসিডিউর অন্তর্ভুক্ত করা গুরুত্বপূর্ণ। একটি এরর হ্যান্ডলার অন্তর্ভুক্ত করলে, আপনি কাস্টোমাইজ করতে পারেন আপনার প্রোগ্রাম কীভাবে প্রতিক্রিয়া জানাবে যদি একটি এরর এনকাউন্টার হয়। এইভাবে, এরর হ্যান্ডলার আপনাকে সিদ্ধান্ত নেওয়ার সুযোগ দেয় ব্যবহারকারী এরর এনকাউন্টার করলে কী মেসেজ দেখাবে, অথবা আপনি কীভাবে একটি সমস্যা সম্পর্কে নোটিফাই হবেন।
JavaScript try catch
JavaScript try catch ব্লক একটি নির্দিষ্ট ব্লকের কোডে এরর শনাক্ত করে। "catch" ব্লকের কন্টেন্ট রান করে যদি আপনার "try" ব্লকের কোডে একটি এরর থাকে। আপনি "finally" ব্লকও ব্যবহার করতে পারেন যাতে কোড রান করে আপনার প্রোগ্রাম সফলভাবে এক্সিকিউট হোক বা না হোক।
একটি try/catch প্রসিডিউরের সিনট্যাক্স:
try {
// Your code here
console.log(“The code works!”);
} catch (e) {
console.log(“There is a problem in my code!”);
}
আমাদের ব্লকে দুটি স্টেটমেন্ট আছে:
- try {}.
- catch (e) {}.
"try" স্টেটমেন্টে সংবদ্ধ কোডটি হলো যা প্রোগ্রাম চেষ্টা করবে রান করার। এই কেসে, আমাদের প্রোগ্রাম চেষ্টা করছে "This code works" কনসোলে প্রিন্ট করার। catch স্টেটমেন্টে সংবদ্ধ কোডটি রান করে যদি এবং যখন আপনার try স্টেটমেন্টে একটি এরর রিটার্ন হয়।
catch স্টেটমেন্টে (e) ভ্যালুটি সেই এররকে উপস্থাপন করে جسের কারণে আপনার "try" স্টেটমেন্টের কোড ব্যর্থ হয়েছে। আপনি "e"-র মান প্রিন্ট আউট করতে সিদ্ধান্ত নিতে পারেন যাতে আপনি আপনার কোড রোকানোর এররটির মূল কারণটি দেখতে পারেন।
try catch জাভাস্ক্রিপ্ট উদাহরণ
try/catch ব্লকগুলো একশনে দেখানোর জন্য, একটি উদাহরণ ব্যবহার করি। নিচের উদাহরণে, আমরা আমাদের কোডে একটি জাভাস্ক্রিপ্ট ভেরিয়েবল নাম ভুল লিখেছি।
let ourVariable = “Test”; console.log(ourVarible);
আমাদের কোড রিটার্ন করে:
ReferenceError: ourVarible is not defined
এটি ডিফল্ট এরর যা রিটার্ন হয় যখন একটি ভেরিয়েবল খুঁজে পাওয়া যায় না। কিন্তু ব্যবহারকারী এই এররটি দেখলে? তারা বিভ্রান্ত হয়ে যাবে। এখন আমাদের কোডটি try/catch ব্লক ব্যবহার করে ट्रাই করি:
let ourVariable = “Test”;
try {
console.log(ourVarible);
} catch (e) {
console.log(“There is a problem!”)
}
আমাদের কোড রিটার্ন করে:
There is a problem!
আমাদের কোডে উপরের মতো একই ReferenceError আছে। কিন্তু ডিফল্ট এররটি লম্বা এবং জটিল হওয়ার পরিবর্তে, আমাদের প্রোগ্রাম আমাদের catch ব্লকে স্পেসিফাই করা কাস্টোম এরর রিটার্ন করছে। আমাদের কোড এররটি লগ করছে, কিন্তু প্রোগ্রাম আমাদের কাস্টোম এরর রিটার্ন করছে।
Catch ব্লক আমাদের এররটি আর্গুমেন্ট "e"-তে ট্র্যাক করে। যদি আমরা চাই, তবে আমরা এখনও রিটার্ন হওয়া এররটি অ্যাক্সেস করতে পারি। এখানে "e" ভ্যালু রিটার্ন করার একটি প্রোগ্রামের উদাহরণ:
let ourVariable = “Test”;
try {
console.log(ourVarible);
} catch (e) {
console.log(“There is a problem! Here is the error message from the code:”, e)
}
আমাদের কোড নিচের আউটপুট রিটার্ন করে:
There is a problem! Here is the error message from the code: ReferenceError: ourVarible is not defined.
এখন আমাদের কোড আমাদের কাছে একটি এরর রিপোর্ট করছে এবং প্রোগ্রাম দ্বারা থ্রো করা এরর মেসেজটিও দেখাচ্ছে।
এটি মেনে চলা উচিত যে catch ক্লজগুলো অপশনাল। যদি আপনি আপনার প্রোগ্রাম কোনো এরর এনকাউন্টার করলে কিছুই না করতে চান, তবে আপনাকে শুধু আপনার কোডকে একটি try ব্লকে এনক্লোজ করতে হবে।
JavaScript try catch finally ক্লজ
আমাদের কোডে আমরা আর একটি ক্লজ যোগ করতে পারি: finally। Finally, catch-এর মতো একটি অপশনাল ক্লজ, এবং এটি আমাদের কোড রান করতে দেয় এমনকি যখন একটি এরর এনকাউন্টার হয়। এখানে try/catch/finally ক্লজ একশনে একটি উদাহরণ:
let ourVariable = "Test";
try {
console.log(ourVarible);
} catch (e) {
console.log("There is a problem! Here is the error message from the code:", e)
} finally {
console.log("The code has been run!")
}
এখানে আমাদের প্রোগ্রাম যা রিটার্ন করে:
TypeError: Your variable is not a string! The code has been run!
আমাদের কোড একটি এরর এনকাউন্টার করে তাই আমাদের catch ক্লজের কোড রান করে। এটি উপরে দেখা TypeError রিটার্ন করে। এরর হ্যান্ডেল হওয়ার পর, আমাদের finally ব্লকের কোড রান করে, যা This code has been run! প্রিন্ট আউট করে।
উপসংহার
আপনি JavaScript try/catch ক্লজগুলো ব্যবহার করতে পারেন আপনার কোড টেস্ট করার জন্য। একটি catch স্টেটমেন্টের কন্টেন্ট রান করবে যদি আপনার try স্টেটমেন্ট সফলভাবে এক্সিকিউট না পারে। একটি finally স্টেটমেন্ট try বা catch স্টেটমেন্টের যেকোনো একটার পরেই এক্সিকিউট হয়।
আপনি যদি এমন একটি সাইট ডেভেলপ করেন যা ব্যবহারকারী দেখবে, তবে কাস্টোম এরর থাকা উপযোগী হতে পারে। কাস্টোম এরর নিশ্চিত করবে ব্যবহারকারীরা বিভ্রান্ত না হন যখন কিছু ভুল হবে।
আপনি কি জাভাস্ক্রিপ্টে কোডিং সম্পর্কে আরও জানতে চান? আমাদের How to Learn JavaScript গাইড পড়ুন। এই গাইডে জাভাস্ক্রিপ্ট শিখতে টপ অ্যাডভাইস রয়েছে।