JavaScript এ Error Handling

JavaScript একটি শক্তিশালী প্রোগ্রামিং ভাষা, যা ওয়েব ব্রাউজারে এবং সার্ভার-সাইড (Node.js) উভয় জায়গায় ব্যবহৃত হয়। তবে কোড লেখার সময় প্রায়ই আমরা এমন পরিস্থিতির সম্মুখীন হই যেখানে কোনো ভুল বা exception ঘটে। এই ধরনের সমস্যাগুলোকে আমরা Error Handling বা ত্রুটি পরিচালনার মাধ্যমে সহজভাবে সামলাতে পারি। JavaScript-এ এর জন্য রয়েছে try, catch, finally, throw এর মতো কীওয়ার্ড। এই ব্লগে আমরা বিস্তারিতভাবে এগুলো ব্যাখ্যা করব।
1. Error Handling কি এবং কেন প্রয়োজন?
প্রোগ্রামিং-এ Error বা Exception বলতে বোঝায় এমন একটি অবস্থা যা সাধারণ কোড এক্সিকিউশনকে ব্যাহত করে। উদাহরণস্বরূপ:
কোনো ভেরিয়েবল ডিফাইন্ড না থাকলে
division by zero
invalid JSON parse করা
network বা API request fail হওয়া
যদি এই ধরনের ত্রুটিগুলো হ্যান্ডেল না করা হয়, তাহলে পুরো অ্যাপ্লিকেশন ক্র্যাশ করতে পারে।
Error Handling আমাদের সাহায্য করে:
প্রোগ্রাম ক্র্যাশ হওয়া থেকে রক্ষা করতে
ব্যবহারকারীর জন্য সুন্দর error message দেখাতে
ত্রুটি লগ করতে
কোডের নির্দিষ্ট অংশের ব্যর্থতা হ্যান্ডেল করতে
2. try, catch, finally এর ব্যবহার
JavaScript-এ Error Handling করার জন্য সবচেয়ে সাধারণ পদ্ধতি হল try-catch-finally ব্লক।
Syntax
try {
// সম্ভবত error ঘটতে পারে এমন কোড
} catch (error) {
// error হ্যান্ডেল করার জন্য কোড
} finally {
// কোড যা সবসময় execute হবে
}
ব্যাখ্যা:
try: এই ব্লকের মধ্যে এমন কোড রাখা হয় যেটি error ঘটাতে পারে।
catch: যদি try ব্লকে কোনো error ঘটে, catch ব্লক execute হয়। এখানে আমরা error object পেয়ে যাই।
finally: এই ব্লকটি সবসময় execute হয়, চাই error হোক বা না হোক। এটি cleanup কাজের জন্য ব্যবহার করা হয়।
উদাহরণ 1: সহজ try-catch
try {
let result = 10 / 0;
console.log(result);
} catch (error) {
console.log("ত্রুটি ঘটেছে: " + error.message);
}
output:
ত্রুটি ঘটেছে: Division by zero
ব্যাখ্যা: এখানে division by zero ত্রুটি catch ব্লকে ধরা পড়েছে।
উদাহরণ 2: try-catch-finally
try {
let data = JSON.parse('{"name":"Mannan"}');
console.log(data.name);
} catch (error) {
console.log("JSON parse error: " + error.message);
} finally {
console.log("এই কোড সবসময় execute হবে।");
}
output:
Mannan
এই কোড সবসময় execute হবে।
এখানে JSON parse সফল হয়েছে, তাই catch ব্লক execute হয়নি, তবে finally ব্লক সবসময় execute হয়েছে।
3. throw কীভাবে ব্যবহার করবেন
throw ব্যবহার করে আমরা নিজে থেকে কোনো ত্রুটি তৈরি করতে পারি। এটি custom error message তৈরি করার জন্য ব্যবহার করা হয়।
উদাহরণ 3: throw ব্যবহার
function checkAge(age) {
if (age < 18) {
throw new Error("আপনি পর্যাপ্ত বয়সী নন।");
} else {
console.log("আপনি প্রবেশ করতে পারবেন।");
}
}
try {
checkAge(15);
} catch (error) {
console.log("ত্রুটি: " + error.message);
}
output:
ত্রুটি: আপনি পর্যাপ্ত বয়সী নন।
এখানে আমরা নিজে থেকে error throw করেছি এবং catch ব্লকে হ্যান্ডেল করেছি।
4. বিভিন্ন ধরনের JavaScript Error
JavaScript এ কয়েকটি সাধারণ Error রয়েছে, যেমন:
SyntaxError: কোডের syntax ভুল হলে
ReferenceError: undefined variable access করলে
TypeError: type mismatch হলে
RangeError: invalid value range হলে
URIError: URI related সমস্যা হলে
উদাহরণ 4: ReferenceError
try {
console.log(x); // x define করা হয়নি
} catch (error) {
console.log("Error type: " + error.name);
console.log("Error message: " + error.message);
}
output:
Error type: ReferenceError
Error message: x is not defined
5. Error Handling এর ভালো প্র্যাকটিস
try-catch শুধুমাত্র যেখানে প্রয়োজন সেখানে ব্যবহার করুন:
সব কোডে try-catch ব্যবহার করা performance কে প্রভাবিত করতে পারে।Custom error messages ব্যবহার করুন:
ব্যবহারকারীর জন্য বোঝার উপযোগী message দিন।Finally ব্লক ব্যবহার করুন:
resources clean করতে বা file/network connection close করতে।Logging করুন:
console.log বা external logging system ব্যবহার করে error log করুন।
6. Real-life উদাহরণ
ধরে নিন আমরা একটি API call করছি এবং response থেকে data নিয়ে কাজ করছি। যদি network fail হয়, আমরা catch ব্লকে সেটা handle করতে পারি।
async function fetchData() {
try {
let response = await fetch("https://api.example.com/data");
if (!response.ok) {
throw new Error("Network response was not ok");
}
let data = await response.json();
console.log(data);
} catch (error) {
console.log("API call failed: " + error.message);
} finally {
console.log("API call attempt complete.");
}
}
fetchData();
এটি production-ready approach এর মতো কাজ করে।
JavaScript-এ Error Handling একটি অত্যন্ত গুরুত্বপূর্ণ বিষয়। try, catch, finally এবং throw এর সাহায্যে আমরা কোডকে more robust এবং user-friendly করতে পারি। এটি শুধুমাত্র ত্রুটি হ্যান্ডেল করে না, বরং আমাদের প্রোগ্রামকে crash হওয়া থেকে রক্ষা করে এবং debugging সহজ করে।
প্রকৃতপক্ষে, ভালোভাবে Error Handling করা মানে হলো নিরাপদ, স্থিতিশীল এবং maintainable কোড লেখা।



