বিবৃতি চেষ্টা করুন
জাভাস্ক্রিপ্টে, ট্রাই স্টেটমেন্টটি কোড এক্সিকিউশনের সময় ঘটতে পারে এমন ত্রুটিগুলি (যাকে ব্যতিক্রমও বলা হয়) পরিচালনা করতে ব্যবহৃত হয় - সম্পূর্ণ প্রোগ্রামটি বন্ধ না করে।
চেষ্টা স্টেটমেন্ট ক্যাচ স্টেটমেন্টের সাথে একত্রে কাজ করে।
কখনও কখনও এটি অবশেষে সঙ্গে কাজ করে.
এবং কখনও কখনও এটি নিক্ষেপ সঙ্গে কাজ করে.
মডিউল চেষ্টা করুন
চেষ্টা মডিউলটিতে কোড রয়েছে যা একটি ত্রুটি নিক্ষেপ করতে পারে।
যদি কোন ত্রুটি না ঘটে, ক্যাচ ব্লকটি এড়িয়ে যায়।
সিনট্যাক্স
চেষ্টা করুন { // কোড যা একটি ত্রুটি হতে পারে } ধরা (ত্রুটি) { // কোড পরিচালনার ত্রুটি }
নিরাপদ কোডের জন্য চেষ্টা করুন:
ট্রাই ব্লকটি অবিশ্বস্ত বা ত্রুটি-প্রবণ ফাংশনগুলিকে আবদ্ধ করতে ব্যবহৃত হয় যাতে ত্রুটিটি প্রোগ্রামের বাকি অংশকে প্রভাবিত না করে।
মডিউল ধরা
ট্রাই ব্লকে একটি ত্রুটি ঘটলেই ক্যাচ ব্লকটি কার্যকর করা হয়।
ত্রুটি বস্তুটি কি ভুল হয়েছে তার বিশদ প্রদান করে।
সিনট্যাক্স
চেষ্টা করুন { // কোড যা একটি ত্রুটি হতে পারে } ধরা (ত্রুটি) { // কোড পরিচালনার ত্রুটি }
ত্রুটি বস্তু বৈশিষ্ট্য:
চেষ্টা করুন { // কোড যা একটি ত্রুটি হতে পারে } ধরা (ত্রুটি) { console.log(err.name); // ত্রুটির ধরন (যেমন, "TypeError") console.log(err.message); // ত্রুটি বার্তা console.log(err.stack); // জমে থাকা ট্রেস (ডিবাগিং) }
অবশেষে মডিউল (ঐচ্ছিক)
ট্রাই অ্যান্ড ক্যাচ ব্লকের পর অবশেষে ব্লকটি কার্যকর করা হয়, একটি ত্রুটি ঘটুক বা না হোক।
এটি সাধারণত পরিষ্কার করার জন্য ব্যবহৃত হয় (যেমন, ফাইল বন্ধ করা, লোডার বন্ধ করা ইত্যাদি)।
সিনট্যাক্স
চেষ্টা করুন { // কোড যা একটি ত্রুটি হতে পারে } ধরা (ত্রুটি) { // কোড পরিচালনার ত্রুটি } অবশেষে { // কোড যা সর্বদা যাইহোক চলে }
পরিশেষের গুরুত্বঃ
অবশেষে মডিউল নিশ্চিত করে যে সংস্থানগুলি সঠিকভাবে প্রকাশ করা হয়েছে, কোনও ত্রুটি ঘটুক বা না হোক। এটি মেমরি ফাঁস এবং অন্যান্য সম্পদ ব্যবস্থাপনা সমস্যা প্রতিরোধ করতে সাহায্য করে।
জাভাস্ক্রিপ্ট ত্রুটি নিক্ষেপ
যদি একটি ত্রুটি ঘটে, জাভাস্ক্রিপ্ট সাধারণত থামবে এবং একটি ত্রুটি বার্তা তৈরি করবে।
এর জন্য প্রযুক্তিগত শব্দটি হল: জাভাস্ক্রিপ্ট একটি ব্যতিক্রম নিক্ষেপ করে (একটি ত্রুটি নিক্ষেপ করে)।
জাভাস্ক্রিপ্ট আসলে দুটি বৈশিষ্ট্য সহ একটি ত্রুটি বস্তু তৈরি করে: নাম এবং বার্তা।
// জাভাস্ক্রিপ্ট স্বয়ংক্রিয়ভাবে ত্রুটি নিক্ষেপ করে যাক x = y; // রেফারেন্স ত্রুটি: y সংজ্ঞায়িত করা হয় না যাক num = 5; num.toUpperCase(); // TypeError: num.toUpperCase একটি ফাংশন নয়
বিবৃতি নিক্ষেপ
থ্রো স্টেটমেন্ট আপনাকে একটি কাস্টম ত্রুটি তৈরি করতে দেয়।
প্রযুক্তিগতভাবে আপনি একটি ব্যতিক্রম নিক্ষেপ করতে পারেন (একটি ত্রুটি নিক্ষেপ)।
একটি ব্যতিক্রম একটি জাভাস্ক্রিপ্ট স্ট্রিং, নম্বর, বুলিয়ান বা অবজেক্ট হতে পারে:
নিক্ষেপ "খুব বড়"; // লেখাটি নিক্ষেপ করুন নিক্ষেপ 500; // নম্বরটি নিক্ষেপ করুন নিক্ষেপ সত্য; // বুলিয়ান নিক্ষেপ করুন throw {নাম: "CustomError", বার্তা: "কিছু ভুল হয়েছে"}; // বস্তু নিক্ষেপ
আপনি যদি ট্রাই অ্যান্ড ক্যাচের সাথে থ্রো ব্যবহার করেন, আপনি প্রোগ্রাম প্রবাহ নিয়ন্ত্রণ করতে পারেন এবং কাস্টম ত্রুটি বার্তা তৈরি করতে পারেন।
ইনপুট যাচাইকরণের উদাহরণ
এই উদাহরণটি ইনপুট পরীক্ষা করে। মান মিথ্যা হলে, একটি ব্যতিক্রম (ত্রুটি) নিক্ষেপ করা হয়।
ব্যতিক্রম (ত্রুটি) ক্যাচ স্টেটমেন্ট দ্বারা ধরা হয় এবং একটি কাস্টম ত্রুটি বার্তা প্রদর্শিত হয়:
<!DOCTYPE html>
<html>
<body>
<p>Please input a number between 5 and 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="p01"></p>
<script>
function myFunction() {
const message = document.getElementById("p01");
message.innerHTML = "";
let x = document.getElementById("demo").value;
try {
if(x.trim() == "") throw "empty";
if(isNaN(x)) throw "not a number";
x = Number(x);
if(x < 5) throw "too low";
if(x > 10) throw "too high";
} catch(err) {
message.innerHTML = "Input is " + err;
}
}
</script>
</body>
</html>
বর্ণনা:
এইচটিএমএল বৈধতা
উপরের কোড শুধুমাত্র একটি উদাহরণ.
আধুনিক ব্রাউজারগুলি প্রায়ই জাভাস্ক্রিপ্ট এবং অন্তর্নির্মিত এইচটিএমএল যাচাইকরণের সংমিশ্রণ ব্যবহার করে, এইচটিএমএল বৈশিষ্ট্যগুলিতে সংজ্ঞায়িত পূর্বনির্ধারিত বৈধতা নিয়ম ব্যবহার করে:
<input id="demo" type="number" min="5" max="10" step="1">
HTML5 বৈধকরণ বৈশিষ্ট্য:
HTML5 বেশ কিছু অন্তর্নির্মিত বৈধতা বৈশিষ্ট্য প্রদান করে:
<input type="email" required>
<input type="number" min="1" max="100">
<input type="text" pattern="[A-Za-z]{3}">
<input type="url">
<input type="date" min="2023-01-01">
অবশেষে উদাহরণ
চেষ্টা এবং ধরার পরে চূড়ান্ত বিবৃতি আপনাকে ফলাফল নির্বিশেষে কোড চালানোর অনুমতি দেয়:
সিনট্যাক্স
চেষ্টা করুন { // কোড ব্লক পরীক্ষা করা হবে } ধরা(ত্রুটি) { // কোড ব্লক যা ত্রুটি পরিচালনা করে } অবশেষে { // ট্রাই/ক্যাচ ফলাফল নির্বিশেষে কোডের ব্লক কার্যকর করা হবে }
উদাহরণ
function myFunction() {
const message = document.getElementById("p01");
message.innerHTML = "";
let x = document.getElementById("demo").value;
try {
if(x.trim() == "") throw "is empty";
if(isNaN(x)) throw "is not a number";
x = Number(x);
if(x > 10) throw "is too high";
if(x < 5) throw "is too low";
} catch(err) {
message.innerHTML = "Error: " + err + ".";
} finally {
document.getElementById("demo").value = "";
}
}
অবশেষে ব্যবহারিক প্রয়োগ:
অবশেষে মডিউল নিম্নলিখিত পরিস্থিতিতে দরকারী:
// ফাইল অপারেশন যাক ফাইল; চেষ্টা করুন { ফাইল = openFile("data.txt"); প্রসেসফাইল(ফাইল); } ধরা(ত্রুটি) { console.error("ফাইল ত্রুটি:", ত্রুটি); } অবশেষে { if(file) closeFile(file); // সর্বদা ফাইলটি বন্ধ করুন } // ডাটাবেস সংযোগ সংযোগ দিন; চেষ্টা করুন { সংযোগ = connectToDatabase(); executeQuery(সংযোগ); } ধরা(ত্রুটি) { logError(ত্রুটি); } অবশেষে { if(connection) connection.close(); // সর্বদা সংযোগ বন্ধ করুন } // UI লোডার showLoader(); চেষ্টা করুন { fetchData(); } ধরা(ত্রুটি) { showError(err); } অবশেষে { hideLoader(); // সর্বদা লোডার লুকান }
ট্রাই-ক্যাচ-ফাইনালি ফ্লো ডায়াগ্রাম
চেষ্টা ব্লক শুরু হয়
কোডটি কার্যকর করা হয়
ত্রুটি দেখা দিলে → catch এ যান
যদি কোন ত্রুটি → শেষ পর্যন্ত যান
ক্যাচ ব্লক (ঐচ্ছিক)
একটি ত্রুটি ঘটলে শুধুমাত্র চালানোর চেষ্টা করুন
ত্রুটির বিবরণ পরিচালনা করে
তারপর → অবশেষে যান
অবশেষে মডিউল (ঐচ্ছিক)
সর্বদা চলমান (ত্রুটি/কিছুই নয়)
পরিষ্কারের কাজের জন্য
কার্যক্রম চলতে থাকে
আরও দেখুন:
JavaScript Errors
বিভিন্ন জাভাস্ক্রিপ্ট ত্রুটির ধরন সম্পর্কে জানুন
JavaScript Silent Errors
নীরব ত্রুটিগুলি সম্পর্কে জানুন যা ব্যতিক্রম নিক্ষেপ করে না
JavaScript Error Object
এরর অবজেক্ট এবং এর পদ্ধতি সম্পর্কে জানুন
JavaScript Debugging
জাভাস্ক্রিপ্ট ত্রুটিগুলি খুঁজে বের করা এবং ঠিক করার বিষয়ে জানুন৷
জাভাস্ক্রিপ্ট ত্রুটি বিবৃতি টিউটোরিয়াল
ত্রুটি বিবৃতি আপনার জ্ঞান পরীক্ষা করার জন্য এই অনুশীলন চেষ্টা করুন.