জেভাস্ক্রিপ্ট এর্রর - থ্রো এবং ট্রাই টু ক্যাচ

try এই বিধানটি আপনাকে কোড ব্লকের ত্রুটি পরীক্ষা করার অনুমতি দেয়

catch এই বিধানটি আপনাকে ত্রুটি প্রক্রিয়াকরণের অনুমতি দেয়

throw বিন্যাসটি আপনাকে কাস্টম ত্রুটি তৈরি করার অনুমতি দেয়。

finally এটি আপনাকে কোড চালু করতে সহায়তা করে, try এবং catch-এর পরে, ফলাফল কোনও হোক না কেন

ত্রুটি চালু হবে!

জেভাস্ক্রিপ্ট কোড চালু করার সময়, বিভিন্ন ত্রুটি হতে পারে

ত্রুটি প্রক্রিয়াকরণকারীর কোডিং ত্রুটি, ত্রুটি ইনপুটের কারণে উদ্ভূত ত্রুটি, বা অন্যান্য অপরিকল্পিত সমস্যার কারণে হতে পারে

ইনস্ট্যান্স

এই উদাহরণে, আমরা adddlert একটি ত্রুটি তৈরি করতে প্রত্যাশা করে একটি সতর্কতা কোড লিখুন:

<p id="demo"></p>
<script>
try {
    adddlert("স্বাগত জানাই!");
}
catch(err) {
    document.getElementById("demo").innerHTML = err.message;
}
</script>

আপনার নিজেই প্রয়াস করুন

জেভাস্ক্রিপ্ট একটি adddlert-কে ত্রুটি হিসাবে ধরে, এবং ত্রুটি প্রক্রিয়াকরণের কোড চালু করে

জেভাস্ক্রিপ্ট try এবং catch

try এই বিধানটি একটি কোড ব্লক নির্দিষ্ট করতে অনুমতি দেয়, যাতে কোড ব্লক চালু হলে ত্রুটি পরীক্ষা করা যায়

catch এই বিধানটি একটি কোড ব্লক নির্দিষ্ট করতে অনুমতি দেয়, যদি try কোড ব্লকে কোনও ত্রুটি হয়

คำสั่ง JavaScript try এবং catch এককক্ষমত্তা:

try {
     পরীক্ষার জন্য কোড ব্লক
}
 catch(err) {
     ত্রুটি প্রক্রিয়াকরণের কোড ব্লক
} 

জেভাস্ক্রিপ্ট একটি ত্রুটি ফেলে

যখন ত্রুটি হয়, JavaScript সাধারণত বন্ধ হয় এবং একটি ত্রুটি বার্তা উৎপন্ন করে।

প্রযুক্তিগত শব্দব্যঞ্জনা এইভাবে বর্ণনা করা হয়:JavaScript একটি অস্ত্র (ত্রুটি) ফেলুন (ত্রুটি ফেলুন)

JavaScript একটি দুই বৈশিষ্ট্যসম্পন্ন Error ওবজেক্ট:name এবং message

throw 语句

throw বিন্যাসটি আপনাকে কাস্টম ত্রুটি তৈরি করার অনুমতি দেয়。

কার্যতত্ত্বে, আপনিঅস্ত্র (ত্রুটি) ফেলুন (ত্রুটি ফেলুন)

অস্ত্রটি হতে পারে JavaScript স্ট্রিং, সংখ্যা, বুল বা অবজেক্ট:

throw "Too big";    // টেক্সট ফেলুন
throw 500;          // সংখ্যা ফেলুন

যদি throw সঙ্গে try এবং catch একসঙ্গে ব্যবহার করলে, প্রগতিপথকে নিয়ন্ত্রণ করা এবং কাস্টম ত্রুটি বার্তা তৈরি করা সম্ভব হবে。

প্রবেশ ভ্রূণিকরণ ক্ষেত্র

এই উদাহরণটি প্রবেশকে পরীক্ষা করবে। যদি মান ভুল হয়, তবে একটি অস্ত্র (err) ফেলে হবে。

এই অস্ত্র (err) catch 语句 দ্বারা ধরা এবং একটি কাস্টম ত্রুটি বার্তা দেখানো হয়:

<!DOCTYPE html>
<html>
<body>
<p>প্রবেশ 5 - 10 র মধ্যের সংখ্যা দিন:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">প্রবেশ পরীক্ষা</button>
<p id="message"></p>
<script>
function myFunction() {
    var message, x;
    message = document.getElementById("message");
    message.innerHTML = "";
    x = document.getElementById("demo").value;
    try { 
        if(x == "") throw "খালি";
         if(isNaN(x)) throw "সংখ্যা নয়";
         x = Number(x);
        if(x < 5) throw  "কম হল";
        if(x > 10) throw "বেশি হল";
    }
    catch(err) {
        message.innerHTML = "প্রবেশ হল " + err;
    }
}
</script>
</body>
</html> 

আপনার নিজেই প্রয়াস করুন

HTML ভ্রূণিকরণ

এই কোডটি শুধুমাত্র একটি উদাহরণই।

আধুনিক ব্রাউজারগুলি সাধারণত JavaScript-এর সাথে স্থাপিত হয় এবং HTML ভ্রূণিকরণকে মিলিয়ে দিয়ে, HTML প্রতিমার সমূহ নির্দিষ্ট ভ্রূণিকরণ নিয়মগুলি ব্যবহার করে:

<input id="demo" type="number" min="5" max="10" step="1">

এই টিউটোরিয়ালের পরবর্তী চাপগুলিতে আপনি ফর্ম ভ্রূণিকরণ নিয়ে আরও বেশি জানতে পাবেন。

finally 语句

finally এই বিন্যাসটি আপনাকে try এবং catch-এর পরেও কোড চালু করার অনুমতি দেয়, যে কোনও ফলাফল:

try {
     // পরীক্ষার জন্য কোডব্লক
}
 catch(err) {
     // ত্রুটি প্রক্রিয়াকরণের কোডব্লক
} 
finally {
     // যে কোনও ফলাফলেই কার্যকরী কোডব্লক
}

ইনস্ট্যান্স

function myFunction() {
    var message, x;
    message = document.getElementById("message");
    message.innerHTML = "";
    x = document.getElementById("demo").value;
    try { 
        if(x == "") throw "খালি";
        if(isNaN(x)) throw "সংখ্যা নয়";
         x = Number(x);
        if(x >  10) throw "একটু বড়";
        if(x <  5) throw "একটু ছোট";
    }
    catch(err) {
        message.innerHTML = "ত্রুটি: " + err + ".";
    }
    finally {
        document.getElementById("demo").value = "";
    }
}

আপনার নিজেই প্রয়াস করুন

Error ওবজেক্ট

JavaScript এর মধ্যে error ওবজেক্ট সংগ্রহকারী নিহিত ত্রুটির সূচনা প্রদান করে

error ওবজেক্ট দুটি উপযোগী প্রকৃতি প্রদান করে:name এবং message

Error ওবজেক্ট প্রকৃতির প্রকৃতি

প্রকৃতি ব্যাখ্যা
name ত্রুটির নাম সেট করা বা ফেরত দেওয়া
message ত্রুটির বার্তা (একটি শব্দমালা) সেট করা বা ফেরত দেওয়া

Error Name Values

error এর name প্রকৃতি ছয়টি ভিন্ন মান ফেরত দিতে পারে:

ত্রুটির নাম ব্যাখ্যা
EvalError eval() ফাংশনের ত্রুটি হয়েছে
RangeError সংখ্যার সীমার বাইরে ত্রুটি হয়েছে
ReferenceError অবৈধ যুক্ত করা ত্রুটি হয়েছে
SyntaxError বাক্যসাংখ্য ত্রুটি হয়েছে
TypeError ধরন ত্রুটি হয়েছে
URIError encodeURI() এ হওয়া ত্রুটি

আমরা এই ছয়টি ভিন্ন মানের বিষয়টি বিস্তারিতভাবে ব্যাখ্যা করব।

Eval ত্রুটি

EvalError eval() ফাংশনের ত্রুটিকে সূচক করে

নতুন সংস্করণের JavaScript কোনও ত্রুটি ফেলে না EvalError。অনুগ্রহ করে SyntaxError প্রতিস্থাপন

পরিমাণ ত্রুটি

RangeError আপনি যদি অবশ্যক মানের সাথে ব্যবহার করেন না, তবে ফেলে যাবে。

উদাহরণ: আপনি সংখ্যার প্রমাণ সংখ্যা 500 করে নিতে পারেন না。

ইনস্ট্যান্স

var num = 1;
try {
    num.toPrecision(500);   // সংখ্যা 500টি প্রমাণ সংখ্যা নিয়ে থাকতে পারে না
 }
catch(err) {
    ডকুমেন্ট.getElementById("demo").innerHTML = err.name;
} 

আপনার নিজেই প্রয়াস করুন

যুক্ত করা ত্রুটি

আপনি যদি অবশ্যক বলা যান না এমন বদলকরণকারী বস্তুকে (যুক্ত করেন) ব্যবহার করেন, তবে ReferenceError ফেলে যাবে:

ইনস্ট্যান্স

var x;
try {
    x = y + 1;   // y যুক্ত করা যায় না (ব্যবহার করা হবে)
 }
catch(err) {
    ডকুমেন্ট.getElementById("demo").innerHTML = err.name;
} 

আপনার নিজেই প্রয়াস করুন

বাক্যসাংখ্য ত্রুটি

আপনি যদি বাক্যসাংখ্য ত্রুটির হাস্তাক্ষর করা কোড গণনা করেন, তবে SyntaxError প্রলোচনা করা হয়:

ইনস্ট্যান্স

try {
    eval("alert('Hello)");   // ' ছাড়া তো ত্রুটি হবে
}
catch(err) {
     ডকুমেন্ট.getElementById("demo").innerHTML = err.name;
} 

আপনার নিজেই প্রয়াস করুন

ধরন ত্রুটি

আপনি যদি অপেক্ষা করা মানের সাথে মানোন্নয়ন করেন না, তবে TypeError প্রলোচনা করা হয়:

ইনস্ট্যান্স

var num = 1;
try {
    num.toUpperCase();   // আপনি সংখ্যা কে উচ্চস্থানীয় করতে পারবেন না
 }
catch(err) {
    ডকুমেন্ট.getElementById("demo").innerHTML = err.name;
} 

আপনার নিজেই প্রয়াস করুন

URI ত্রুটি

যদি আপনি URI ফাংশনে অনৈতিহাসিক অক্ষর ব্যবহার করেন URIError প্রলোচনা করা হয়:

ইনস্ট্যান্স

try {
    decodeURI("%%%");   // আপনি এই শতকরা সংখ্যা নিয়ে URI এনকোডিং করতে পারবেন না
 }
catch(err) {
    ডকুমেন্ট.getElementById("demo").innerHTML = err.name;
} 

আপনার নিজেই প্রয়াস করুন

অস্তর্গত Error অবজেক্ট প্রতিশব্দ

মোজিলা এবং মাইক্রোসফট অস্তর্গত error অবজেক্ট প্রতিশব্দ নির্দিষ্ট করেছে

  • ফাইল নাম (মোজিলা)
  • লাইন নম্বর (মোজিলা)
  • কলাম নম্বর (মোজিলা)
  • স্ট্যাক (মোজিলা)
  • ডিসক্রিপশন (মাইক্রোসফট)
  • নম্বর (মাইক্রোসফট)

এই প্রকার প্রতিযোগিতা সাইটে ব্যবহার করুন না। এইসব প্রতিযোগিতা সব ব্রাউজারেই কাজ করবে না。